htaccess重写带有和不带有查询字符串的URL

时间:2018-08-01 18:16:27

标签: .htaccess mod-rewrite

我有一个重写规则,该规则在访问不带参数的直接URL时有效。

示例网址:http://mev-hongkong.com/product-category/babies-tots/

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mev-hongkong\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^product-category/babies-tots(/.*)?$ https://mothersenvogue.com.hk/shop/all-babies-tots$1 [L,R=301,NC,NE]

但是,我的URL也带有相同的参数,因此我也需要将其重定向到相同的URL输出。我尝试操纵重写规则,并添加了一个%{QUERY_STRING}条件,例如以下规则,但是当我使用带有参数的URL对其进行测试时,查询字符串仍然没有被剥离。

示例网址带有参数:http://mev-hongkong.com/product-category/babies-tots/?add_to_wishlist=8836

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mev-hongkong\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{QUERY_STRING} ^add_to_wishlist=([^&]+) [NC]
RewriteRule ^product-category/babies-tots(/.*)?$ https://mothersenvogue.com.hk/shop/all-babies-tots$1 [L,R=301,NC,NE]

我错过了什么才能正确删除查询字符串?

1 个答案:

答案 0 :(得分:1)

QSD标志正是这样做的:

while(<>){}