我从我的文件中删除了html扩展名,但是,我的目录中有多个文件夹与这些文件的名称相同。
当我尝试访问其中任何一个时,当然,我收到错误403。
有没有办法通过htaccess文件解决这个问题?
我的htaccess:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]
我在谷歌的搜索中尝试了几个命令,但所有这些命令都是针对php网站的,并且没有一个在我的情况下有效。
你能帮帮我吗? 感谢
答案 0 :(得分:0)
我猜测问题不在于您当前的规则,而是在您的规则甚至有机会处理请求之前mod_dir重定向请求。
默认情况下,mod_dir会将缺少尾部斜杠的目录的任何请求重定向到带有尾部斜杠的同一请求。这可能是导致问题的原因所以你需要关闭它。
只要关闭Indexes
选项,就可以转换目录斜杠,否则可以公开目录内容。所以试试:
DirectorySlash Off
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^%{REQUEST_URI} .html [L]