强制用户将WWW域与重定向参数一起使用

时间:2014-04-30 08:56:26

标签: php apache .htaccess mod-rewrite rewrite

我想重定向一下:

example.com/product-name-p12.html(这是product_page.php?id = 12重写)

为:

www.example.com/product-name-p12.html

如果我正在使用此重写规则:

RewriteRule ^(.*)-p(.*).html$ product_page.php?id=$2&%{QUERY_STRING}

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

它重定向到www.example.com/product_page.php?id=12,而不是html版本。

非常感谢,

1 个答案:

答案 0 :(得分:1)

撤消规则的排序并使用QSA标记。 QSA(查询字符串追加)标志在添加新查询参数时保留现有查询参数。

RewriteEngine On

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

RewriteRule ^(.*)-p(.*)\.html$ product_page.php?id=$2 [L,QSA]