Apache ProxyPassMatch反向引用路径匹配问题求助
Apache ProxyPassMatch反向引用路径匹配问题求助
嗨,我来帮你搞定这个问题~ 你当前的核心问题在于,你的正则表达式把/map/也包含进了捕获分组$1里,导致转发到后端时路径多了一层/map/,自然就不符合预期了。
要实现把请求www.website.com/map/maps/example/live/data转发到http://127.0.0.1:8100/maps/example/live/data,只需要调整正则的捕获范围,把/map/排除在捕获分组之外就行,修改后的配置如下:
ProxyPassMatch ^/map/(maps/[^/]*/live/.*) http://127.0.0.1:8100/$1
给你拆解下这个配置的逻辑:
^/map/:匹配请求路径开头的/map/部分,但这部分不会被捕获到分组里(maps/[^/]*/live/.*):这是我们要保留的核心路径,也就是从maps/开始到结尾的所有内容,对应你的例子就是maps/example/live/data- 后端地址里的
$1会替换成这个捕获到的路径,最终转发的地址就是你想要的http://127.0.0.1:8100/maps/example/live/data
另外别忘了确认你的Apache已经启用了mod_proxy和mod_proxy_http模块,如果是Debian/Ubuntu系列系统,可以用下面的命令启用:
a2enmod proxy proxy_http
启用后记得重启Apache服务让配置生效哦。
备注:内容来源于stack exchange,提问作者Firav
相关产品推荐
相关产品推荐

