我需要使用三个动态参数值重定向现有网址。 我现有的网址如下:
http://localmach.test.it:90/aa/nonLoggedUser.portal?appb=true&event=AppEvent&Code=1.564&mobile=789754654&locale=en
现在我想用相同的参数将其重定向到不同的ip:
http://17.22.11:90/aa/mycare?appb=true&event=AppEvent&Code=1.564&mobile=789754654&locale=en
我在httpd.conf文件中使用apache url redirect。 我可以在没有参数的情况下重定向url,但无法使用参数重定向。
我在httpd.conf中尝试过以下重写,但它无法正常工作
<VirtualHost *:90>
ServerName localmach.test.it
RewriteEngine on
RewriteCond %{QUERY_STRING} ^Code=([0-9]*)&mobile=([0-9]*)&locale=([a-z]*)$
RewriteRule ^/(.*)(aa/nonLoggedUser.portal?appb=true&event=AppEvent&)(.*)$ http://17.22.11:90/aa/mycare?appb=true&event=AppEvent&Code=%1&mobile=%2&locale=%3$
</VirtualHost>
请帮忙 提前谢谢。
答案 0 :(得分:0)
Code
不是查询字符串中的第一个,因此^
才能赢得匹配RewriteRule
模式中的查询字符串。$
会被视为文字$
。您可以使用此重构规则:
RewriteEngine on
RewriteCond %{QUERY_STRING} (?:^|&)(Code=[^&]*&mobile=[^&]*&locale=[^&]*)(?:&|$) [NC]
RewriteRule ^/?aa/nonLoggedUser\.portal$ http://17.22.11:90/aa/mycare?appb=true&event=AppEvent&%1 [L,NC,NE,R=301]