向htaccess文件添加通配符IP范围



我认为下面的语法可以很好地允许IP范围使用星号作为通配符,但没有乐趣。。。

知道在这里什么可行吗?

我的IP更改了最后两批号码。。。。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^112.*.*.*$
#RewriteRule ^(.*)$ - [R=403,L]
RewriteRule ^(.*)$ https://www.example.com/denied.html
</IfModule>

请您尝试以下操作。考虑到您不想允许任何IP从112开始,那么我们可以将其保留为简单的regex。我们不需要在这里提及任何其他数字,因为你并不关心它。

RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^112.
#RewriteRule ^(.*)$ - [R=403,L]
RewriteRule ^(.*)$ https://www.example.com/denied.html

IP匹配正则表达式不完整。它在寻找一个112的IP,然后是0到3个点。这显然永远不会发生。

这将工作

RewriteCond %{REMOTE_ADDR} !^112.

通过去掉最后一部分,您现在可以匹配以112开头、后跟一个点的任何地址。这是相当广泛的匹配。但对于你的目的来说应该足够了。

更完整的版本是这样的,您可以在其中指定完整的地址。

RewriteCond %{REMOTE_ADDR} !^112.d+.d+.d+$

这个代码片段应该适用于

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^112.
RewriteRule ^(.*)$ https://www.example.com/denied.html
</IfModule>

最新更新