2012-08-15 66 views
1

我怎么可以重写:改写只有一个参数的URL

http://mystagingsite.com/website/?page_id=7&id=63&r_id=1-502ba82b9e926&event_id=1&attendee_action=post_payment&form_action=payment&type=paypal

http://mystagingsite.com/website/?page_id=102&id=63&r_id=1-502ba82b9e926&event_id=1&attendee_action=post_payment&form_action=payment&type=paypal

所以PAGE_ID参数需要改变....我需要向用户发送访问第一个网址到第二个网址。我需要改变的是ID参数...所有其他参数需要保存。

我想这一点:(的?后一切)

RewriteRule http://mystagingsite.com/website/?page_id=7 http://mystagingsite.com/website/?page_id=102 [QSA] 

,但似乎并不奏效

回答

1

不能对阵查询字符串或协议/主机(http://mystagingsite.com)在重写规则中,您必须在重写条件下与%{QUERY_STRING}%{HTTP_HOST}变量匹配:

RewriteCond %{HTTP_HOST} mystagingsite.com [NC] 
RewriteCond %{QUERY_STRING} ^(.*)page_id=7&(.*)$ 
RewriteRule ^website/$ /website/?%1page_id=102&%2 [L] 

虽然有点混乱。在你的问题中,你说你想page_id=7重写为page_id=102,但在你的例子中,你有63重写为102

+0

嗨,乔恩,非常感谢。我从中学到了很多东西!现在编辑示例中的错误 – 2012-08-16 08:44:23