在.htaccess中使用RewriteRule时出错404

时间:2015-05-07 19:12:45

标签: apache .htaccess url web url-rewriting

我目前正通过友好的网址改进网站的可用性。我已经多次这样做了,我通常做的是使用.htaccess隐藏* .php或* .html扩展名,遵循以下代码:

RewriteEngine On

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

但是,此代码似乎无法在托管此网站的服务器中工作。如果我尝试在未添加扩展名的情况下尝试访问,则会收到404未找到错误。

http://www.leddream.es/alquilar-pantalla-led.html

http://www.leddream.es/alquilar-pantalla-led

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

在.htaccess中,只需启用MultiViews选项即可启用无扩展名URI。

Options +MultiViews

MultiViews使用选项Apache's content negotiation modulemod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.html

添加此行后,请注释掉所有其他重写规则。

答案 1 :(得分:0)

试试这个:

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