如何构建一个规则,检查传入请求是否属于某些条款,如果不是,则重新路由到其他URL?
例如,我有一个网站my.example.com
。如果传入的URL是my.example.com/login
,那么它应该执行该请求。如果是其他内容(不是login
),则必须将请求重新路由到your.example.com
。例如,
my.example.com/login2
必须重新路由到your.example.com/login2
my.example.com/nologin
必须重新路由到your.example.com/nologin
my.example.com/getname
必须重新路由到your.example.com/getname
当然,如果它是
my.example.com/login
必须重新路由到my.example.com/login
如何使用RewriteRule和mod_rewrite来实现这一目标?
答案 0 :(得分:4)
尝试此规则:
RewriteCond %{HTTP_HOST} ^my\.example\.com$
RewriteRule !^login$ http://your.example.com%{REQUEST_URI} [L,R=301]
答案 1 :(得分:0)
RewriteCond %{HTTP_HOST} !^www\.myexample\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.myexample.com/$1 [L,R]
答案 2 :(得分:0)
我知道这不是你要求的,但是可以通过使用.htaccess将所有请求(有效或无效)直接发送到一个文件&然后使用服务器端脚本(例如我的PHP)来切换有效选项,使用默认重定向到另一个URL来捕获任何其他内容。
e.g。这样:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
将任何不是实际文件或目录请求的内容发送到index.php