使用 htaccess 限制 IP
Posted
技术标签:
【中文标题】使用 htaccess 限制 IP【英文标题】:IP restriction with htaccess 【发布时间】:2010-10-10 06:50:10 【问题描述】:我想限制整个网站,使只有两个 IP 可以进入该网站。我的 .htaccess 中有以下内容(在站点的根目录):
ErrorDocument 403 http://www.example.com/views/error403.html
Order Deny,Allow
Deny from all
Allow from 311.311.311 322.322.322.322
ErrorDocument 404 /views/error404.html
ErrorDocument 500 views/error500.html
(显然,这些是假 IP,在我的 .htaccess 中它们是正确的 IP)
如您所见,我只允许 322.322.322.322 和来自 311.311.311.0/24 的所有 IP,而拒绝其他人。我想要的是,当任何人从另一个 IP 进入该站点时,他将查看 error403.html 页面。
过滤器工作正常,但重定向不正常。当我尝试从拒绝 IP 进入站点时,我看到一条 Apache 消息:
Found
The document has moved here
“这里”是指向 error403.html 的链接。
我认为我什至限制了 error403.html 页面。
如何进行此限制,但允许查看错误页面?我是否应该将 error403.html 页面移动到另一个目录(即 /views/error/ )并将其他 .htaccess 放入其中,允许该文件中的所有 IP?
提前谢谢你!
【问题讨论】:
【参考方案1】:是的,您已经回答了自己的问题。 :) 将所有未受保护的页面移动到另一个目录中,该目录具有自己的.htaccess
,其中包含正确的Allow
和Deny
。
【讨论】:
我想知道是否存在另一种更好的形式来解决这个问题,但你已经证实了我的怀疑;我会用另一个目录-htaccess 对来做。谢谢弗拉德! 您总是可以从 httpd.conf 执行此操作,并使用更高级的规则来确定哪些目录受到影响,哪些不受影响,但坦率地说,除非您在使用 .htaccess 时遇到性能问题(除非您每秒处理数百或数千个请求,否则您不会这样做。) 而且这个站点托管在一个共享机器上,我无法更改 httpd.conf,因此使用 .htaccess 的解决方案非常适合。 弃用所有这些旧结果会非常好,因为它们不再适用,以上是关于使用 htaccess 限制 IP的主要内容,如果未能解决你的问题,请参考以下文章
使用 htaccess,如何限制查看目录内容,但允许服务器使用内容?
如何使用 .htaccess 或 php.ini 增加上传文件大小限制? [复制]