将非www重定向到www问题

时间:2013-12-28 14:59:12

标签: .htaccess redirect

事实上,我正在处理一个小的PHP脚本,我使用somme htacces函数,如重写,但我有一个问题,为了重定向所有网址dream-9.html到dream.php?id = 9使用此代码:< / p>

RewriteEngine On
RewriteRule dream-([0-9]+)\.html dream.php?id=$1 [L]

最近我决定将所有非www重定向到www,但我有一个问题,同时从非www重定向到www梦想9.html成为dream.php?id = 9并且它显示在链接上这是第二个代码:

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

1 个答案:

答案 0 :(得分:1)

您需要按正确顺序保留规则,即在内部重写规则之前保留301规则。

有这样的规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteRule dream-([0-9]+)\.html$ /dream.php?id=$1 [L,QSA,NC]