【问题标题】:.htaccess rewrite rule IP check being ignored.htaccess 重写规则 IP 检查被忽略
【发布时间】: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


【解决方案1】:

我找到了解决方案!

我遇到了同样的问题,你的问题对我有帮助,谢谢!

你在这一行弄错了:RewriteCond %(REMOTE_ADDR}

正确的是:RewriteCond %{REMOTE_ADDR}

花括号

【讨论】:

  • (╯°□°)╯︵ ┻━┻ 叹息。
猜你喜欢
  • 2014-12-11
  • 1970-01-01
  • 2023-03-25
  • 2019-03-13
  • 2017-04-29
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多