【发布时间】:2021-05-20 22:24:20
【问题描述】:
我一直在尝试拼凑我的 .htaccess 文件,但我没有找到很多关于我想要完成的任务或我是否想太多的信息。
我正在使用以下内容来禁用目录浏览,但我想将其重定向到我创建的自定义 404 错误页面。
# Disable Directory Browsing
Options All -Indexes
拒绝访问我正在使用的目录或文件
####
# Deny access to certain directories that SHOULD NOT be exposed.
####
RewriteRule ^error/ - [L,R=403]
RewriteRule ^assets/ - [L,R=403]
RewriteRule ^plugins/ - [L,R=403]
RewriteRule ^libraries/ - [L,R=403]
RewriteRule ^includes/ - [L,R=403]
RewriteRule ^bootstrap.php - [L,R=404]
所有这些都可以正常工作,但我想重定向到脚本文件夹中的自定义错误页面
example.com/errors/
我发现的只有这个
ErrorDocument 404 /errors/error-404.html
但未能成功将任何错误重定向到我创建的错误。
【问题讨论】:
-
嗨,有趣,也许这个语法可能对stackoverflow.com/questions/2447106/…有帮助
-
您在大多数这些指令中触发了 403,但您只为 404 定义了
ErrorDocument?/bootstrap.php也不会触发 404 吗?我也很好奇,当您已经禁用目录浏览(-Indexes)时,为什么需要为“某些目录”显式触发 403?这些目录中有DirectoryIndex文档吗?大概你也有一个RewriteEngine On指令? -
@IronMan 该链接问题中的语法与此处使用的语法相同。 (?)
-
(澄清一下……您不是在这里“重定向”。ErrorDocument 由内部子请求提供服务,与提供 Apache 默认错误时相同。您可以触发“重定向” ,但这不适用于此处。)
-
您的
.htaccess文件中还有哪些其他指令?您看到的 Apache 响应的确切措辞是什么?澄清一下,你有一个/error和/errors目录 - 第一个是你阻止的,第二个包含你的错误文档?
标签: apache .htaccess mod-rewrite