我了解如何使用 .htaccess 禁止来 self 的 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
最佳答案
建议 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
).
关于apache - 自制软件网站的自定义禁止页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339004/