我想使用 .htaccess 重定向任何 403,但它似乎不起作用。
Options +FollowSymlinks
RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html
所有帮助表示赞赏。
谢谢让
我想使用 .htaccess 重定向任何 403,但它似乎不起作用。
Options +FollowSymlinks
RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html
所有帮助表示赞赏。
谢谢让
我发现前面的例子有一个问题,那就是:
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”中实际上没有索引)。
因此 - 如何让 403 使用 301(永久)重定向重定向到另一个 URL(或者,您也可以尝试 302 临时重定向)。
ErrorDocument 指令的 URL 部分应该以斜杠开头,表示相对于 DocumentRoot 的路径,或者应该是完整的 URL(如果您想使用外部文档)。
您根本不需要 RewriteEngine 和 RewriteRule 指令。
因此,假设您的 notfound.html 位于站点的根级别,您的指令应如下所示:
ErrorDocument 403 /notfound.html
RewriteEngine On
ErrorDocument 403 http://www.yourdomain.example/
这是一个超级简单的方法:
使用这条线
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