这是我的 .htaccess 文件:
# NO LISTING OF INDEXES
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
# NIX THE www BECAUSE IT IS NO LONGER 1996 AND YOU'RE COOLER THAN THAT
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)/$ http://%1/$1 [R=301,L]
# NIX TRAILING SLASHES BECAUSE SEO IS A VENGEFUL GOD AND WHATNOT
RewriteRule ^(.*)/$ $1 [R=301,L]
# SEND ALL NON-FILE REQUESTS TO index.php FOR FIGURING OUT
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# ERROR DOCS
ErrorDocument 400 /error/400
ErrorDocument 401 /error/401
ErrorDocument 403 /error/403
ErrorDocument 404 /error/404
ErrorDocument 500 /error/500
如果我尝试访问一个文件夹(/images/
或/images
我的站点结构中的某个其他真实文件夹),它会陷入重定向循环。
我尝试RewriteCond %{REQUEST_FILENAME} !-d
在尾部斜杠规则之前添加,并且“修复”了重定向,因为它现在在正确的文件夹上强制使用尾部斜杠 - 但也将文件夹名称传递给我的脚本,就好像它是我的 CMS 的烘焙 URI 查询一样弄清楚。
我想我现在可以通过检查 URI 是否是某人试图非法列出的文件夹来尝试在 CMS 端解决此问题,但理想情况下,将有一个优雅的.htaccess
解决方案将文件夹列表调用重定向到我这样的那些禁止页面之一有帮助地在那里声明。有人知道吗?