微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 .htaccess

如何解决在 .htaccess

在我的网站上,我在 .htaccess 中使用此代码禁止某些地址:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^159\.138
RewriteRule .* - [F,L]

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^114\.119\.1
RewriteRule .* - [F,L]

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^185\.191\.171
RewriteRule .* - [F,L]

我试着把它写成:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^159\.138
RewriteCond %{REMOTE_ADDR} ^114\.119\.1
RewriteCond %{REMOTE_ADDR} ^185\.191\.171
RewriteRule .* - [F,L]

但这会崩溃,并且不起作用。我如何合并这些规则,这样我就不需要为每个 IP 写 3 行?

解决方法

第一个解决方案: 内单次检查所有 IP 一起尝试以下操作。正则表达式的在线演示是:Online demo of tested regex

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^((159\.138)|(114\.119\.1)|(185\.191\.171))$
RewriteRule ^ - [F,L]


第二种解决方案(传统方法):您能否尝试将您的规则更改为遵循一次,仅基于您显示的示例。在测试您的网址之前,请务必清除浏览器缓存。

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^159\.138 [OR]
RewriteCond %{REMOTE_ADDR} ^114\.119\.1 [OR]
RewriteCond %{REMOTE_ADDR} ^185\.191\.171
RewriteRule ^ - [F,L]

注意:确保您一次只使用其中一个规则。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。