【发布时间】:2016-12-22 03:12:32
【问题描述】:
所以,我在 .htaccess 文件中有以下代码:
RewriteEngine On
RewriteCond %(REMOTE_ADDR} !^123\.456\.789\.000$
RewriteCond %{HTTP_HOST} !^sub\.
RewriteRule ^(.*)$ http://sub.domain.com/?t=%{REMOTE_ADDR} [R=301,L]
如果您来自此 IP,我基本上希望它不会重定向,但它仍然会重定向。我确定看到的 IP 地址是正确的,因为我使用包含 IP 的查询字符串进行重定向,并且与我正在检查的内容相同。
那么,我认为这是在说:
重定向如果 REMOTE_ADDR 不是 123.456.789.000 与 HTTP_HOST 不以“sub”开头。
我是否对它如何同时检查多个条件感到困惑?
【问题讨论】:
-
是的,你是对的。如果满足您描述的两个条件,它会重定向。
-
所以当我来自 IP 123.456.789.000 时,我肯定不应该被重定向吗?问题来自此 IP 应免于重定向,但仍会重定向。
-
如果您在具有正确 ip 的子域中,则不,它不应该重定向。
-
从您的 Apache 日志中检查收到的原始 URL 以及 Apache 看到的 IP 地址。
-
@MattRogowski 当你被重定向时,
t=参数中有什么?是重写条件下的IP吗?
标签: apache .htaccess mod-rewrite redirect rewrite