重写规则更改正则表达式以标识URL中的不同模式

时间:2018-02-05 06:28:12

标签: apache .htaccess mod-rewrite httpd.conf

在重写配置下,只重定向表单的网址

/fetchHomePage.action?site=eu

RewriteCond %{QUERY_STRING} ^site=(eu|jp|in)$ [NC]
RewriteRule ^/?fetchHomePage.action$ https://example.com/%1? [R=301,L,NC]

我应该在上面的正则表达式中进行哪些更改,以便它甚至可以重定向网址,如

/fetchHomePage.action;jsessionid=60E508BF73717B6BE0C38D80769A0A22?site=eu

这里的潜在客户表示赞赏?

1 个答案:

答案 0 :(得分:1)

匹配a没有问题;在url-path。

  

url-path with";"与其他任何内容匹配的查询字符串与RewriteRule不匹配。

因此,为了匹配jsessionid,您只需将其附加到匹配的url-path为:

RewriteCond %{QUERY_STRING} ^site=(eu|jp|in)$ [NC]
RewriteRule ^/?fetchHomePage.action;jsessionid=60E508BF73717B6BE0C38D80769A0A22 https://example.com/%1? [R=301,L,NC]

没有必要逃脱它。至于jsession id的字符串本身,你可以随心所欲地匹配它,比如(。*)?,可能有更多适合和更具特色的方法来匹配它,但这取决于你的偏好。