Apache 在.htaccess中使用重写规则时出现错误404

Apache 在.htaccess中使用重写规则时出现错误404,apache,.htaccess,url,web,url-rewriting,Apache,.htaccess,Url,Web,Url Rewriting,我目前正在通过友好的URL提高网站的可用性。我已经这样做过好几次了,我通常使用.htaccess隐藏*.php或*.html扩展名,代码如下: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.html [NC,L] 但是,此代码似乎无法在该网站所在的服务器上工作。如果我尝试在未添加扩展的情况下访问,则会出现404 not found错误 有没有办法解决这个问题?试试这个: Rew

我目前正在通过友好的URL提高网站的可用性。我已经这样做过好几次了,我通常使用.htaccess隐藏*.php或*.html扩展名,代码如下:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
但是,此代码似乎无法在该网站所在的服务器上工作。如果我尝试在未添加扩展的情况下访问,则会出现404 not found错误

有没有办法解决这个问题?

试试这个:

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

在.htaccess中,只需启用
多视图
选项即可启用无扩展URI

Options +MultiViews
选项
MultiViews
Apache的内容协商模块使用,该模块在
mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。所以
/file
可以在URL中,但它将提供
/file.html


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

是否启用了重写模块?是的,启用了。我还将www.添加到没有它的请求中,并在@StarkeenThanks@anubhava.的建议中完美运行。htaccess文件似乎工作正常。也不工作。我以前也尝试过这个解决方案。谢谢你的建议@Starkeen