.htaccess 通过htaccess添加文件扩展名

.htaccess 通过htaccess添加文件扩展名,.htaccess,file-extension,.htaccess,File Extension,是否可以将.html添加到不包含文件扩展名的url中。比如说 mydomain.com/somepage 将指向 mydomain.com/somepage.html 我尝试使用以下命令,但出现了一个内部服务器错误 RewriteEngine On RewriteBase / RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ $1.html [NC,L] 谢谢 只有当

是否可以将.html添加到不包含文件扩展名的url中。比如说

mydomain.com/somepage 将指向 mydomain.com/somepage.html

我尝试使用以下命令,但出现了一个内部服务器错误

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [NC,L]
谢谢


只有当扩展名为.html的文件确实存在时,它才会重写(安全重写——将解决“达到最大内部重定向数”的问题)。换句话说:如果请求了
/about
,并且存在
/about.html
,那么它将被重写。另一方面,如果请求了
/yeahbaby
,但不存在
/yeahbaby.html
文件,则不会发生任何事情(404处理程序应启动..或任何其他规则)。

[Mon Apr 02 10:16:52 2012][error][client 127.0.0.1]mod u rewrite:已达到最大内部重定向次数。假设配置错误。如果站点上正在运行neccessary.FURL,请使用“RewriteOptions MaxRedirects”增加限制,因此不确定这是否会造成差异?我已经确定这是在任何混乱的代码之前。谢谢你的回复。我不再收到错误,但它实际上并没有在这里完美地完成重写工作(Windows上的Apache 2.2.xx)。。在其他类似(如果不是完全相同的话)的问题上(搜索“howto add.php extension”或类似的问题)表现良好。如果它不起作用,那么需要更多的细节——您对Apache有多大的控制权?您可以启用重写调试吗?
RewriteEngine On
RewriteBase /

# add .html file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ $1.html [L]