mod_rewrite添加.php扩展名

时间:2012-06-20 16:52:40

标签: php apache .htaccess

我的.htaccess文件如下:

Options -Multiviews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php

我遇到的问题是,当我尝试访问没有www的网站时。前缀,.php扩展名被添加到地址,这往往会导致问题。例如,如果我尝试使用地址example.com访问我的主页,则该地址将转换为www.example.com/.php。我想要www。要添加,但最后添加的.php扩展名只会导致错误。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

删除[R=301,L]中的L,表示“Last”,表示“在此之后停止处理RewriteRules。”

301也意味着“永久重定向”。在这种情况下,您的浏览器将记住永久重定向。您是否有可能有一个版本的重写规则,转到您的URL,然后更改它?清除缓存或尝试其他浏览器。

答案 1 :(得分:0)

您文件第4行的“L”标志表示“最后”,即它不再处理任何规则。尝试删除L.