htaccess重定向www到非www仍然将.php扩展名放在uri中

时间:2016-07-29 12:28:28

标签: php .htaccess url-redirection

我在这里缺少一些东西: Remove .php extension with .htaccess

我的目标:

将所有内容从www重定向到非www

.htaccess中的当前代码

RewriteEngine on
Options -Indexes
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ /$1.php [L]

当前行为:

重定向从www到非www的所有内容,但在URI中添加了php文件扩展名“.php”(php文件确实存在)

例如:

  

www.example.com/hello

重定向到

  

example.com/hello.php

我该怎么做才能避免URI中的php扩展?

1 个答案:

答案 0 :(得分:0)

我不确定原因,它使用以下代码。

来自@ Panama-jack的建议非常强烈:在设置htaccess规则时使用302确实是设置所有内容之前的路径。

RewriteEngine on
Options -Indexes
Options -Multiviews
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ /$1.php [L]