【问题标题】:custom ban page for homebrew website自制网站的自定义禁止页面
【发布时间】:2010-07-26 21:04:10
【问题描述】:

我了解如何使用 .htaccess 从我的 apache 网络服务器中禁止 IP 地址:

order allow,deny
deny from 192.168.44.201
deny from 224.39.163.12
deny from 172.16.7.92
allow from all

我想创建一个自定义的“您已被禁止”页面。我怎么能这样做?

编辑:

澄清一下,我不是尝试创建自定义 403 页面,因为这些页面也用于其他情况(即基本身份验证失败等)。到目前为止,我最接近的是:

rewritecond %{REMOTE_ADDR} ^127\.0\.0\.1$
RewriteRule !^banned$ /banned [NC,L]

但这会在 IP 匹配时产生内部服务器错误,而不是将用户发送到 /banned

【问题讨论】:

    标签: apache http .htaccess


    【解决方案1】:

    建议 403 代码使用 ErrorDocument 的其他答案将是执行此操作的常用方法。但是,如果用户基于 IP 被拒绝访问(与其他原因相反),您希望显示不同的错误页面,您可以使用 mod_rewrite,正如您所怀疑的那样。

    RewriteCond %{REMOTE_ADDR} =192.168.44.201 [OR]
    RewriteCond %{REMOTE_ADDR} =224.39.163.12 [OR]
    RewriteCond %{REMOTE_ADDR} =172.16.7.92
    RewriteRule !^/banned.html /banned.html [L]
    

    附:如果可能的话,这应该放在您的虚拟主机配置中,而不是 .htaccess 文件中。如果您无权访问虚拟主机配置文件,则可以将其放在 .htaccess 文件中,但从 RewriteRule 模式中删除前导斜杠(因此 !^/banned.html 变为 !^banned.html)。

    【讨论】:

    • 谢谢,正是那个前导斜线弄乱了我的内部服务器错误。不过,我遇到了另一个问题——我的 htaccess 文件中已经有一个重写规则,如果我不注释掉第一个,我会收到内部服务器错误。我做错了什么?
    • 如果不看第一个重写规则是什么就很难判断。
    【解决方案2】:

    您使用ErrorDocument 指令。被拒绝访问的人会收到一个 403 标头,所以:

    ErrorDocument 403 banned.html
    

    将被禁止的人重定向到banned.html


    编辑:另一种选择是完全删除 mod_access 内容,并使用基于 IP 的重写规则(如问题中所述)。它应该只是:

    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} 192.168.44.201 [OR]
    RewriteCond %{REMOTE_ADDR} 224.39.163.12 [OR]
    RewriteCond %{REMOTE_ADDR} 172.16.7.92
    RewrulteRule .* banned.html [L]
    


    编辑 2:大卫击败了我,得到了几乎相同的答案;我认为his way 是你想要的

    【讨论】:

    • 虽然这确实很有用,但每次有人遇到 403 错误时都会导致“禁止”消息
    • @Mala 嗯...是的,这不是重点吗?除此以外的情况,您是否提供 403 错误代码?
    • 如果为用户设置了文件权限,使其无法读取文档,或者基本身份验证失败,他应该会收到 403 错误。但是,他不会被禁止
    【解决方案3】:

    在您的 .htaccess 文件中:

    ErrorDocument 403 /banned.html 
    

    将 /banned.html 更改为您想要的任何路径/到/文件名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-25
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2011-01-10
      • 1970-01-01
      相关资源
      最近更新 更多