自定义 403 禁止使用重写条件
Posted
技术标签:
【中文标题】自定义 403 禁止使用重写条件【英文标题】:custom 403 forbidden using rewrite condition 【发布时间】:2017-03-16 05:52:30 【问题描述】:如果我通过重写条件禁止 IP,如何将它们发送到自定义 403 页面?
#RewriteRule ^403/?$ 403error.html [NC]
#RewriteCond %REMOTE_ADDR ^00\.00\.00\.00$
#RewriteRule ^ - [R=403,L]
在 ip 被拒绝时以无限循环发送它,但是我不希望使用默认的 403 禁止页面。我有一个想要显示的自定义页面。我将其命名为 403error.html 并将其放置在*** html 目录中。我怎样才能拒绝除自定义错误页面之外的所有内容?
【问题讨论】:
【参考方案1】:是的,该规则导致无限循环错误,因为当被禁止的 ip 尝试访问该站点时,它们首先被重定向到 403 页面,然后 403 页面重定向回自身,从而导致无休止的内部重定向。为了解决这个问题,我们需要从规则中排除 403 页面或重写目标:
RewriteEngine on
RewriteCond %REMOTE_ADDR ^00\.00\.00\.00$
RewriteRule !403error\.html$ /403error.html [L]
这会将您的自定义错误页面显示到被禁止的 ip。
【讨论】:
为了胜利!!再次,你是一个很大的帮助,非常感谢!【参考方案2】:我通过将代码直接写入 ErrorDocument 调用并在姊妹域上引用/托管所需的图像,暂时“修补”了我的问题。但是,我仍然想知道是否可以在原始域中托管图像或 html 文档。
ErrorDocument 403 "<body bgcolor=#9C1409><br><br><center><a href=mailto:someone@somewhere.com><img src=http://www.somewhereelse.com/403error.jpg border=0></a></center>"
【讨论】:
以上是关于自定义 403 禁止使用重写条件的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security 中仅使用自定义 UserDetailsService 禁止 403 [重复]