1

我该如何重写:

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参数需要改变......我需要将访问第一个url的用户发送到第二个url。我需要更改的只是 id 参数......所有其他参数都需要保留。

我正在尝试这个:

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

但它似乎没有工作

4

1 回答 1

1

您无法匹配重写规则中的查询字符串(之后的所有内容?)或协议/主机(the http://mystagingsite.com),您必须匹配重写条件中的%{QUERY_STRING}and%{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

于 2012-08-15T17:31:22.730 回答