使用.htaccess仅将IP规则应用于HTTP(而不是HTTPS)

时间:2012-03-28 23:32:59

标签: apache .htaccess

我一直在设置一个IP阻止列表,我想知道是否可以阻止通过HTTP连接的IP,如果它们通过HTTPS连接则不阻止它们。有一篇关于SO .Htaccess rules to redirect respective HTTP links to HTTP and HTTPS to HTTPS?的帖子很相似,但是使用mod_rewrite我曾经遇到过可怕的经历,过去只给了我500个错误。有没有办法用标准格式做到这一点?

order allow,deny 
allow from 192.168.1.0/24
deny from all

我也需要支持IPv6地址。如果重写方法是唯一的选项,在你的答案中你可以包含一个我可以看到的链接来正确执行我的任务吗?非常感谢!

我正在使用Apache / 2.2.20(Ubuntu)

1 个答案:

答案 0 :(得分:1)

您希望的内容并非内置于Apache的.htaccess机制中。简单地说:mod_authmod_access不支持任何协议级命令。此外,您所寻求的内容打破了预期的假设,即如果您通过HTTP提供资源,那么相同的路径将通过HTTPS工作。对于使用HTTPS enforcers的人来说,这会产生令人惊讶的结果。

但是,如果你已经死定了这样的事情,我会推荐Squid。您可以使用它来执行各种漂亮的操作,例如在每个文件的基础上拒绝从某些协议访问缓存,以及在向用户提供服务之前摆弄Apache服务器上的数据。