Apache 2.2 mod_alias 的 RedirectMatch 有什么问题?

Apache 2.2 mod_alias 的 RedirectMatch 有什么问题?

我们使用 Apache HTTPD 服务器版本 2.2。我尝试使用 Apache 2.2 mod_alias 的 RedirectMatch,但没有成功(http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch

我需要创建仅重定向带参数的 URL 的规则,change_url=1例如

https://<IP>/servlet1?id=1&type=2&change_url=1 

我尝试使用以下规则:

RedirectMatch (.*)change_url=1(.*) /keepurlprocess/$1

change_url不幸的是,只有当URL 中存在以下情况时,它才无法处理必需的 URL :

https://<IP>/change_url=1 

我的正则表达式有什么问题?如何将其应用于查询参数?此外,我有一些特定参数type。对于某些类型,我不需要执行重定向:

https://<IP>/servlet1?id=1&type=do_not_redirect&change_url=1 

是否可以创建如下规则?

RedirectMatch (.*)(change_url=1 AND NOT type=do_not_redirect)(.*)  /keepurlprocess/$1

答案1

看看这里。你应该能够在 IF 语句中删除重定向

https://httpd.apache.org/docs/2.4/mod/core.html#if

相关内容