Apache 重写规则——如果传入请求不包含某些字符,则重写到其他URL
如何构造一个规则来检查传入的请求是否具有某些术语,如果没有,则重新路由到其他URL 例如,我有一个网站Apache 重写规则——如果传入请求不包含某些字符,则重写到其他URL,apache,mod-rewrite,Apache,Mod Rewrite,如何构造一个规则来检查传入的请求是否具有某些术语,如果没有,则重新路由到其他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.exampl
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
如何使用和实现这一点?我知道这并不完全是您所要求的,但我会使用.htaccess将所有请求(有效或无效)直接发送到一个文件,然后使用服务器端脚本(例如,在我的例子中是PHP)切换有效选项,使用重定向到其他URL的默认值捕获其他内容
RewriteCond %{HTTP_HOST} !^www\.myexample\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.myexample.com/$1 [L,R]
e、 g.这:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
将任何不是对实际文件或目录的请求发送到index.php我知道这并不完全是您所要求的,但可以通过使用.htaccess将所有请求(有效或无效)直接发送到一个文件,然后使用服务器端脚本(例如,在我的例子中为php)切换有效选项来实现,使用重定向到其他URL的默认值捕获其他内容 e、 g.这:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
将不是实际文件或目录请求的任何内容发送到index.php尝试以下规则:
RewriteCond %{HTTP_HOST} ^my\.example\.com$
RewriteRule !^login$ http://your.example.com%{REQUEST_URI} [L,R=301]
试试这个规则:
RewriteCond %{HTTP_HOST} ^my\.example\.com$
RewriteRule !^login$ http://your.example.com%{REQUEST_URI} [L,R=301]
我认为你的剧本没有达到目的。。。例如,我没有看到任何涉及登录和yourexample.com的逻辑?啊,好吧,很抱歉我第一次误解了这个问题。我认为你的脚本没有达到预期的效果。。。例如,我没有看到任何涉及登录和yourexample.com的逻辑?啊,好吧,对不起,我第一次误解了这个问题。我是故意使用example.com的,你也应该这样。看,我是故意使用example.com的,你也应该这样。看见