代码之家  ›  专栏  ›  技术社区  ›  Mala

自制网站的自定义禁止页面

  •  1
  • Mala  · 技术社区  · 14 年前

    我了解如何使用.htaccess从apache Web服务器中禁止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匹配时,这会产生一个内部服务器错误,而不是将用户发送到/禁止

    3 回复  |  直到 14 年前
        1
  •  3
  •   David Z    14 年前

    ErrorDocument 对于403代码,这是通常的方法。但是,如果用户基于IP被拒绝访问(与其他原因相反),那么您希望显示不同的错误页,因此可以使用mod\u 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 ).

        2
  •  2
  •   Community Egal    7 年前

    你用一个 ErrorDocument 指令。被拒绝访问的人将收到403标头,因此:

    ErrorDocument 403 banned.html
    

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


    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]
    


    his way 是你想要的

        3
  •  1
  •   CrayonViolent    14 年前

    在.htaccess文件中:

    ErrorDocument 403 /banned.html