apache - 自制软件网站的自定义禁止页面

标签 apache http .htaccess

我了解如何使用 .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/

相关文章:

PHP - 在 Raspberry Pi 上打开文件或死亡

java - Tomcat/Spring Boot 的 HTTP 请求统计

php - 从 url 中删除 .php 和 id 并替换为斜杠

python - 如何在 Apache 下运行的应用程序中保持动态应用程序级统计信息?

java - 适用于 Windows 的 apache 可移植运行时二进制文件?

http post 请求不在 Blackberry 5.0 中发送参数

php - .htaccess 用于具有多个变量的友好 URL

javascript - 使用重写规则后未加载 CSS 、 js 、 jpg png 帮助我

apache - RewriteRule 不排除现有文件/目录

http - 协议(protocol)不可知服务器的架构设计