使用 .htaccess 重定向 403 错误

Posted

技术标签:

【中文标题】使用 .htaccess 重定向 403 错误【英文标题】:redirect 403 error using .htaccess 【发布时间】:2011-07-23 14:17:19 【问题描述】:

我想使用 .htaccess 重定向任何 403,但它似乎不起作用。

Options +FollowSymlinks

RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html

感谢所有帮助。

谢谢 让

【问题讨论】:

【参考方案1】:

ErrorDocument 指令的 URL 部分应该以斜杠开头,表示相对于 DocumentRoot 的路径,或者应该是完整的 URL(如果您想使用外部文档)。

这里根本不需要 RewriteEngine 和 RewriteRule 指令。

因此,假设您的 notfound.html 位于您网站的根级别,您的指令应如下所示:

ErrorDocument 403 /notfound.html

【讨论】:

url 是 localhost/adf 应该显示 notfound.html,其中 403 文档位于根目录中。 如果您的 .htaccess 文件和 notfound.html 都在同一个目录中,与您的 DocumentRoot 相同,那么包含上面该行的 .htaccess 将导致 notfound.html 显示所有 403 错误.您也可以将同一行放在 httpd.conf 而不是 .htaccess 中。 我将 notfound.html 放在 error/ 中,这是 .htaccess 中唯一的一行【参考方案2】:

我发现前面的例子有一个问题,那就是:

ErrorDocument 403 /notfound.html

我的网站上有一个存储图像的目录,例如 domain.com/images

我希望如果有人尝试访问目录的 URL,他们会被重定向到该站点的主页。我的问题是,浏览器中的 URL 将保留 domain.com/images 然后主页会加载,但主页会引用无法从该 URL 访问的样式表。 (这很有意义 - 403 应该显示错误消息)。

然后我尝试研究如何将 403 错误重定向到另一个 URL,并且一些网站说您不能执行 302 或 301 - 您错过了重点:403 是错误,而不是重定向。

但我找到了办法。这是 /images 目录中的 .htaccess 文件:

Options -Indexes
ErrorDocument 403 /images/403.php
RewriteEngine on
RewriteRule ^403.php$ /index.php [R=301]

所以基本上第一行会阻止目录列表。

第二行表示对于“权限被拒绝”(即 403 错误,这是第一行给出的),站点应该加载文件“/images/403.php”。但是您实际上不需要在该目录中创建任何 403.php 文件,因为...

第三行打开你的重定向引擎

第四行表示如果用户尝试加载页面 403.php(即在此 .htaccess 文件所在的“/images”目录中),则应使用 301(永久)重定向它们重定向到 /index.php - 这是根目录(即主页)的索引,而不是 /images 子目录的索引(实际上“/images”中确实没有索引)。

因此 - 如何使用 301(永久)重定向让 403 重定向到另一个 URL(或者,您也可以尝试 302 临时重定向)。

【讨论】:

【参考方案3】:

这是一个超级简单的方法:

使用这条线

Options -Indexes
ErrorDocument 403 /goaway.html

其中 goaway.html 在 head 部分包含以下行:

<meta HTTP-EQUIV="REFRESH" content="0; url=HERE YOU PUT THE URL YOU ARE REDIRECTING TO" />

就是这样...每个 403 错误都会转到根目录中的 goaway.html 文件,goaway.html 会将它们重定向到您选择的 URL

【讨论】:

欢迎来到 SO :-) 请适当地格式化你的答案中的代码,只是为了得到一些培训......【参考方案4】:
RewriteEngine On 
ErrorDocument 403 http://www.yourdomain.example/

【讨论】:

你能解释一下这个答案以及这应该如何解决原来的问题吗?

以上是关于使用 .htaccess 重定向 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

403重定向不起作用

Linux 第三天 重定负管道符环境变量

通过 htaccess 发送 404 错误?

WordPress对url做重定向处理

geoip 将国家/地区重定向到 403

.htaccess 规则将图像文件的直接视图重定向到页面,图像作为查询字符串传递