2016-07-29 48 views
0

有我丢失的东西在这里: Remove .php extension with .htaccesshtaccess的重定向到WWW非www仍然把PHP扩展的URI

我的目标:

重定向一切从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扩展?

+0

改变这种重写规则'^前走(路。*)$ /$1.php [L]'这个'RewriteRule ^(。*)$/$ 1 [L]' –

+0

这是否总是会发生?如果你做了'example.com/hello'怎么办? – apokryfos

+0

[Remove .php extension with .htaccess]的可能重复(http://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess) – riya

回答

0

我不太确定为什么,它使用下面的代码。

从@巴拿马插孔的建议是一个强大的一个:用302 htaccess的规则,工作时的确都设置301

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]