我想使用.htaccess重定向任何403,但它似乎不起作用。使用.htaccess重定向403错误
Options +FollowSymlinks
RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html
所有帮助表示赞赏。
感谢 让
我想使用.htaccess重定向任何403,但它似乎不起作用。使用.htaccess重定向403错误
Options +FollowSymlinks
RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html
所有帮助表示赞赏。
感谢 让
的ErrorDocument指令的URL部分应利用一个斜线,这表明是相对于你的DocumentRoot路径开始,或者它应该是一个完整的URL(如果你想使用外部文件)。
在这里你不应该需要RewriteEngine和RewriteRule指令。
因此,假设您的notfound.html是在您的网站的根目录下,你的指令应该是这样的:
ErrorDocument 403 /notfound.html
我发现前面的示例中的一个问题,这是:
ErrorDocument 403 /notfound.html
我在我的网站有一个存储图像的目录,说在domain.com/images
我想,如果有人试图访问目录的URL,他们被重定向到网站的浩mepage。在上述情况下,我的问题是浏览器中的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临时重定向)。
这里是一个超级简单的方法来做到这一点:
使用此行
Options -Indexes
ErrorDocument 403 /goaway.html
其中goaway.html包含头部分以下行:
<meta HTTP-EQUIV="REFRESH" content="0; url=HERE YOU PUT THE URL YOU ARE REDIRECTING TO" />
就是这样...每个403错误都会转到根目录中的goaway.html文件和goaway.html将它们重定向到您选择的网址
欢迎来到SO :-)请适当地在你的答案中格式化代码,只是为了得到一些培训... – 2016-07-26 21:27:57
ErrorDocument 403 http://localhost/notfound.html – X10nD 2011-03-26 18:43:08
我添加了一个小例子。 – 2011-03-26 18:45:39
url是localhost/adf应该显示notfound.html,其中403文档位于根目录中。 – X10nD 2011-03-26 18:47:58