Apache 重写规则更改正则表达式以标识URL中的不同模式
下面的“重写配置”仅重定向表单的url /fetchHomePage.action?site=euApache 重写规则更改正则表达式以标识URL中的不同模式,apache,.htaccess,mod-rewrite,httpd.conf,Apache,.htaccess,Mod Rewrite,Httpd.conf,下面的“重写配置”仅重定向表单的url /fetchHomePage.action?site=eu RewriteCond %{QUERY_STRING} ^site=(eu|jp|in)$ [NC] RewriteRule ^/?fetchHomePage.action$ https://example.com/%1? [R=301,L,NC] 我应该在上面的正则表达式中做些什么更改,这样它甚至可以像这样重定向url /行动;jsessionid=60E508BF73717B6BE0C38D
RewriteCond %{QUERY_STRING} ^site=(eu|jp|in)$ [NC]
RewriteRule ^/?fetchHomePage.action$ https://example.com/%1? [R=301,L,NC]
我应该在上面的正则表达式中做些什么更改,这样它甚至可以像这样重定向url
/行动;jsessionid=60E508BF73717B6BE0C38D80769A0A22?站点=eu
这里的潜在客户很受欢迎?匹配a没有问题;在url路径中 带有“;”的url路径不匹配为查询字符串,您可以将其与重写规则匹配,就像与其他任何内容匹配一样 因此,要匹配jsessionid,只需将其附加到匹配的url路径,如下所示:
RewriteCond %{QUERY_STRING} ^site=(eu|jp|in)$ [NC]
RewriteRule ^/?fetchHomePage.action;jsessionid=60E508BF73717B6BE0C38D80769A0A22 https://example.com/%1? [R=301,L,NC]
没有必要逃避它。至于jsession id的字符串本身,您可以根据需要进行匹配,比如(.*),可能有更合适、更具体的方法进行匹配,但这取决于您的偏好。既然您基本上是复制粘贴请求发送的任何查询字符串,为什么不使用[QSA]标记并摆脱查询字符串检查?我需要查询字符串检查,因为我只想在查询字符串中有一个参数时重定向。你能帮助我如何检测“jsessionid=60E508BF73717B6BE0C38D80769A0A22”吗?好吧,然后读我的答案,但是有一种可能是jsessionid不在url中,你是不是建议写两条规则,一条用于jsessionid,另一条用于不带jsessionid的?也没有必要,你可以使用(;jessionid=where)?即使jsessionid不存在,它也将匹配相同的uri。我认为我们不应该在这里讨论正则表达式。你能帮我解决这个问题吗