0

有人在我的网站上尝试一些不好的东西,我厌倦了阻止他正在使用的 IP。所以我想阻止他一起执行代码并将任何此类尝试重定向到本地服务器。为此,我在我的.htaccess:

RewriteCond %{QUERY_STRING} ^id=http://213.246.61.125:2082/index.html$ [NC] RewriteRule page.php http://127.0.0.1/index.php? [NS,S,L]

现在,事情是从许多不同的 IP 上尝试这个 index.html 也是托管的。所以我想制作一个通配符,这样无论 index.html 之前的 IP 是什么,尝试它的 IP 总是被重定向到他的本地服务器。我不知道该怎么做。我不能像在其他地方那样使用 IP 通配符,(34.5.*.*)因为这是一个链接。所以我假设我必须使用类似的东西:

RewriteCond %{QUERY_STRING} ^id=http://([0-9]).([0-9]).([0-9]).([0-9]):2082/index.html$ [NC] RewriteRule page.php http://127.0.0.1/index.php? [NS,S,L]

但是,以上是不正确的,但我不知道如何针对任何数字组合进行调整。也许有人可以帮忙?

4

1 回答 1

0

您应该在字符范围后加上一个加号,[0-9]因为您想匹配一个或多个字符。另请注意

  • 正则表达式中的点应该用反斜杠引用。否则它们匹配任何字符。
  • 你的括号RewriteCond是不必要的。
  • 你的NSS标志RewriteRule可能是不必要的。

我会尝试以下方法:

RewriteCond %{QUERY_STRING} ^id=http://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:2082/index\.html$ [NC]
RewriteRule page\.php http://127.0.0.1/index.php [L]
于 2013-02-11T15:35:07.053 回答