.htaccess删除.html不能使用一页

时间:2016-11-17 23:02:37

标签: html .htaccess redirect

在我将我的网站写成.php之前,我可以轻松地删除.php并在没有输入.php的情况下连接到页面,但现在我得到了一个写为.html的新页面,我想做同样的事情。我花了一些时间来找到.htaccess的工作代码,但遗憾的是有一个问题。所有页面都可以正常工作,但是当我尝试访问我的帮助页面时,我得到了错误301 - 禁止访问"出于某种原因。

例如我输入: example.com/help(original example.com/help.html) 但它的作用是什么: example.com/help/并给我301错误。

这是我的.htaccess:

Options -Indexes
ErrorDocument 404 http://example.com/404.html

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteCond %{httpS} off
RewriteRule (.*) https://%{http_HOST}%{REQUEST_URI}

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

所以我不确定如何解决这个问题(如果可能的话),所以如果有人对如何修复它有任何想法请告诉我。如果由于某种原因不可能有任何其他页面,这不会起作用吗?我还在网站上工作,所以我可以将帮助页面重命名为helpcenter或类似的东西,但我不确定是否会影响其他任何文件。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

现在,Apache2已经通过+MultiViews选项支持扩展屏蔽了一段时间。根据我的经验,它比自定义重写规则更容易实现。

但是,如果您开始使用重写,请确保您没有help目录。如果里面没有index.html文件,-Indexes会给它401。