我认为下面的语法可以很好地允许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>