微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 .htaccess self-URL 重定向到站点索引而不出现 403 错误?

如何解决如何将 .htaccess self-URL 重定向到站点索引而不出现 403 错误?

这是我的 .htaccess 文件

Options -Indexes
AddDefaultCharset utf-8
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
RewriteEngine on
RewriteRule ^error.html$ / [R=301]

一切正常,如果我输入一个不存在的文件夹或文件,我会被重定向站点索引。

访问 .htaccess 本身的问题,它是如何工作的:

mysite.com/existing_file.html -> returns file content
mysite.com/non_existing_file.html -> redirects to /
mysite.com/.htwhatever -> redirects to /
mysite.com/.htaccess -> 403 error
mysite.com/.htaccess_non_existent -> 403 error

似乎从 .htaccess 开始的任何内容都会返回 403 错误

我尝试添加

RewriteRule ^.htaccess$ / [R=301]

但它没有做任何事情。

为什么会发生这种情况,我该如何解决

谢谢!

解决方法

如果您想更改此行为,则必须先覆盖 <Files ".ht*">,然后使用 RewriteRule 覆盖重定向:

# allow requests for .ht* here first
<Files ".ht*">
    Require all granted
</Files>

# redirect to / here
RewriteEngine On

RewriteRule ^\.ht / [L,R=301,NC]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。