URL Rewriting .php to .html


URL Rewriting .php to .html

我正在.htaccess:中将URL扩展从.php转换为.html

RewriteEngine On
RewriteBase /    
RewriteCond %{THE_REQUEST} (.).php
RewriteRule ^(.*).php $1.html [R=301,L]
RewriteRule ^(.*).html $1.php [L] 
FallbackResource /index.php

问题是,我有一些部分写着"php":

www.mywebsite.com/phpscripts.php 

转换时:

www.mywebsite.com/htmlscripts.html 
^(.*).php

此正则表达式表示:任何内容,包括任何内容,后跟一个任意字符,后跟"php"。例如,它将匹配"blahphp.html",特别是匹配"blashphp"部分,而根本不关心扩展。

你要找的是:

RewriteRule (.+)'.php$ $1.html [R=301,L]
RewriteRule (.+)'.html$ $1.php [L] 

(.+)'.php$something(至少一个字符),后面跟着一个句点,后面跟着字符串末尾的"php"。您也可以去掉RewriteCond,它不会向这些规则添加任何内容。

还要注意,您应该将所有HTML文件更改为链接到href="...html"。不要仅仅依靠这些重定向来解决你的问题;重定向每个请求不仅效率低下,还会破坏POST请求。只能将出于任何原因试图打开旧URL的客户端重定向到新的规范URL。