regex - 如何使用 ProxyMatch 或 ProxyPassMatch 与 Regex 映射多个上下文路径

标签 regex apache contextpath

我正在使用构建在 Apache Web 服务器版本 2.2.4 之上的 IBM 的 IHS Webserver

我的要求是在匹配中使用正则表达式代理传递各种上下文路径。

我尝试使用 ProxyPassMatch 但出现以下错误

ERROR: "Invalid ProxyPass|ProxyPassMatch parameter. Parameter must be in the form 'key=value'"

<LocationMatch "^/(ae/en|ar/en|ar/es|at/en|au/en|be/en|br/en)/">
Order Allow,Deny
Allow from all
ProxyPass http://www.xyz.com.au:80/au/en/      #(should keep varying as per the regex matched in location match )
ProxyReverse http://www.xyz.com.au:80/au/en/   #(should keep varying as per the regex matched in location match )
</LocationMatch>

请告知如何实现这一点。

问候 斯里达尔

最佳答案

如果您将 ProxyPassMatch 放在 LocationMatch 部分,则 ProxyPassMatch(正则表达式)的第一个参数必须省略。它将来自 LocationMatch。我的 ( working ) 配置示例:

<VirtualHost *:80>
ServerName gopal.lv
ServerAlias gopal.lv www.gopal.lv
ProxyPreserveHost On

<LocationMatch "^/(img|js|css|att|thumb|banner)/(.+)$">
#Note: only 1 argument here
ProxyPassMatch "http://192.168.1.11/$1/$2"
</LocationMatch>

#Note we have 2 arguments here
ProxyPassMatch "^/(img|js|css|att|thumb|banner)/(.+)$" "http://192.168.1.11/$1/$2"
ProxyPass / http://192.168.1.12/

</VirtualHost>

否则会报错

ERROR: "Invalid ProxyPass|ProxyPassMatch parameter. Parameter must be in the form 'key=value'"

在此处记录:https://httpd.apache.org/docs/trunk/mod/mod_proxy.html#proxypass

关于regex - 如何使用 ProxyMatch 或 ProxyPassMatch 与 Regex 映射多个上下文路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33885831/

相关文章:

从 ASPX 文件 PowerShell 读取 URL 的正则表达式

php - 正则表达式获取 "any_characters((number,number))"

R:基于条件的正则表达式第一次出现

regex - CMake 正则表达式匹配

c++ - Apache拦截一些http请求

apache - 是否可以使用 Ant 将文件复制到现有 EAR 中?

java - 是否可以动态地交替使用多个项目中的 Freemarker 模板?

tomcat - 如何关闭 tomcat 中的单个应用程序(上下文)?

tomcat - 一个 jetty-web.xml 中的多个上下文路径用于在 Tomcat 服务器上运行的 JAX-RS 应用程序

php - 我们的 Centos 服务器感染了一些恶意软件。它正在调用随机 IP/域。如何阻止服务器发出外部请求?