使用.htaccess重定向403错误

X10*_*0nD 4 linux .htaccess http-status-code-403

我想使用.htaccess重定向任何403,但似乎无法正常工作。

Options +FollowSymlinks

RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html
Run Code Online (Sandbox Code Playgroud)

所有帮助表示赞赏。

谢谢让

Joh*_*ess 5

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

您在这里完全不需要RewriteEngine和RewriteRule指令。

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

ErrorDocument 403 /notfound.html
Run Code Online (Sandbox Code Playgroud)


you*_*gme 5

我发现前面的示例存在问题:

ErrorDocument 403 /notfound.html
Run Code Online (Sandbox Code Playgroud)

我的网站上有一个用于存储图像的目录,例如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]
Run Code Online (Sandbox Code Playgroud)

因此,基本上第一行阻止目录列表。

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

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

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

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