重写不适用于htaccess中的某个URL

时间:2015-02-11 12:09:54

标签: php .htaccess

对于某些网址,我的htaccess无法正常工作。我只想重写文件的扩展名,如php到html。但它不起作用。当我输入类似" http://www.example.com/myfile.php"的网址时和" http://www.example.com/myfile.html"两个网址都在工作。但我只是想将myfile.php重写为myfile.html。

我的htaccess重写规则是: -

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Options -Indexes
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^index\.php$ "http\:\/\/example\.com\/" [R=301,L]

Header unset Pragma
FileETag None
Header unset Last-Modified
Header unset ETag

RewriteRule ^myfile.html$ myfile.php [QSA,L]

ServerSignature Off

1 个答案:

答案 0 :(得分:0)

将此添加到.htaccess文件中。

RewriteCond %{THE_REQUEST} \ /+myfile\.php(\s|\?) [NC]
RewriteRule ^ /myfile.html [R=301,L]

RewriteRule ^myfile\.html$ /myfile.php [NC,L]

如果用户尝试直接访问myfile.html,则第一条规则会重定向到myfile.php