网页返回403错误并且未显示实际页面

时间:2015-02-18 16:11:18

标签: html .htaccess

我的网站上有一个页面(它是html),名为" providers.html"。 为了从url中删除.html部分,我将此代码添加到.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

现在问题是我有一个名为"提供商"的文件夹。并包含与该页面相关的文件。

现在当我转到网址时,我收到403错误,因为浏览器加载文件夹而不是html页面。

如果有人能给我一些解决这个问题的指导,我真的很感激。 谢谢

1 个答案:

答案 0 :(得分:1)

这可能是您正在寻找的内容:

DirectorySlash Off
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ([^\.]+) $1.html [NC,L]
  1. 关闭目录斜杠。这部分是最重要的部分。基本上,如果存在目录,则不应添加斜杠。这样,我们就可以继续针对确切的URI输入检查规则。

  2. 添加了一项检查,以查看当前请求是否以斜杠结尾。

    • 如果没有,请重写相应的HTML文件
    • 否则,请加载目录的内容。您很可能希望在其中添加另一个.htaccess文件以阻止列表等,并且只允许访问现有文件。
  3. 更新:从规则中移除了^$,因为我不相信这里有必要。