2014-01-05 91 views
1

我知道这是一个很常见的任务,这里已经讨论了很多,但是我仍然无法实现。做了一些研究之后,我将这段代码添加到我的.htaccess文件中。在.htaccess中删除url文件的扩展名

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

但它仍然不起作用,并在我的网页上显示.html。 什么可能是错的?

感谢

回答

0

你需要一个额外的规则,外部重定向foo.htmlfoo。有这样的.htaccess:

RewriteEngine on 

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

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.html -f 
RewriteRule ^(.+?)/?$ /$1.html [L] 
+0

嗯,仍然无法正常工作。但它很平常。当我在根目录中有.htaccess文件时,我的页面加载为/index.html - 当我删除.html时,它给了我这个404错误:请求的URL /web/index-en.html在此找不到服务器。但是,当我完全删除.htaccess时,它仍然以index.html格式加载,但是当我删除.html时,该网站也可以加载。 – Mike94

+0

查看更新的代码,确保它位于您网站的根目录下。 – anubhava

+0

我意识到另一个错字并修复了它。你可以再次尝试更新代码吗? – anubhava