为htaccess中的阻止链接中的任何数字创建通配符

时间:2013-02-11 12:58:10

标签: .htaccess wildcard

有人在我的网站上尝试了一些不好的东西,我厌倦了阻止他正在使用的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]

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

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]

但是,上面的说法不对,但我不知道如何根据任何数字组合调整它。也许有人可以提供帮助?

1 个答案:

答案 0 :(得分:0)

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

  • 你的正则表达式中的点应该用反斜杠引用。否则他们匹配任何角色。
  • RewriteCond中的括号是不必要的。
  • NS中的SRewriteRule标记可能是不必要的。

我会尝试以下方法:

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]