用.html替换.html通过.htaccess替换根文件而不是子目录文件

时间:2014-11-10 10:26:47

标签: php regex apache .htaccess redirect

我们如何用.html替换.html通过.htaccess只为root文件而不是subirectoy文件。

示例:www.test.com/home.php应更改为www.test.com/home.html 但www.test.com/admin/home.php应保持不变。

我只是尝试如下:

RewriteEngine on  
RewriteBase /

RewriteCond %{THE_REQUEST} (.*)\.php  
RewriteRule ^(.*)\.php $1.html [R=301,L]  

RewriteCond %{THE_REQUEST} (.*)\.html  
RewriteRule ^(.*)\.html $1.php [L] 

请帮助我。

2 个答案:

答案 0 :(得分:1)

你可以在root .htaccess中使用这样的代码:

RewriteEngine on  
RewriteBase /

RewriteCond %{THE_REQUEST} (.*)\.php  
RewriteRule ^([^/.]+)\.php $1.html [R=301,L]  

RewriteRule ^([^/.]+)\.html $1.php [L,NC]

[^/.]+正则表达式将确保仅在根路径中工作。

答案 1 :(得分:0)

将.htaccess文件更改为:

RewriteEngine on  
RewriteBase /

RewriteRule ^([^/]*)\.php$ $1.html [R=301,L]
RewriteRule ^([^/]*)\.html$ $1.php [L]

然后更新指向您的根页的所有链接以链接到*.html