我的网站上有一个页面(它是html),名为" providers.html"。 为了从url中删除.html部分,我将此代码添加到.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
现在问题是我有一个名为"提供商"的文件夹。并包含与该页面相关的文件。
现在当我转到网址时,我收到403错误,因为浏览器加载文件夹而不是html页面。
如果有人能给我一些解决这个问题的指导,我真的很感激。 谢谢
答案 0 :(得分:1)
这可能是您正在寻找的内容:
DirectorySlash Off
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ([^\.]+) $1.html [NC,L]
关闭目录斜杠。这部分是最重要的部分。基本上,如果存在目录,则不应添加斜杠。这样,我们就可以继续针对确切的URI输入检查规则。
添加了一项检查,以查看当前请求是否以斜杠结尾。
.htaccess
文件以阻止列表等,并且只允许访问现有文件。 更新:从规则中移除了^
和$
,因为我不相信这里有必要。