重写规则以在根目录和其他目录中使用.html结束包含/index.html的所有URL

时间:2014-03-27 18:27:09

标签: .htaccess mod-rewrite rewrite

我的问题是,如何以一种将.html添加到每个网址末尾的方式重写我的所有网址?

这是我的.htaccess规则,我有

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d

 RewriteRule ^(.*)$ index.php/$1

</IfModule>

我已经尝试将.html添加到index.php/$1.html,但是这样会在整个地方投放404.

请帮忙

1 个答案:

答案 0 :(得分:3)

您可以使用:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([^.]+?)/?$ $1.html [R=301,L,NE]

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

</IfModule>