Apache 使用重写规则';s ProxyPassReverse中的结果url(regex)

Apache 使用重写规则';s ProxyPassReverse中的结果url(regex),apache,http,mod-rewrite,webserver,mod-proxy,Apache,Http,Mod Rewrite,Webserver,Mod Proxy,我的Web服务器正在托管许多应用程序,其路径如下所示 http://example.com/app1/ http://example.com/app2/ ... 我想有这些应用的临时链接,可以很容易地配置为过期。因此,我在mysql中维护了temp到应用程序url的映射以及到期时间。 在apache中,我编写了如下重写规则 RewriteEngine On RewriteMap linkmap prg:/home/http/a.php RewriteCond $1 ^[^/]*$ Rewri

我的Web服务器正在托管许多应用程序,其路径如下所示

http://example.com/app1/
http://example.com/app2/ ...
我想有这些应用的临时链接,可以很容易地配置为过期。因此,我在mysql中维护了temp到应用程序url的映射以及到期时间。 在apache中,我编写了如下重写规则

RewriteEngine On
RewriteMap linkmap prg:/home/http/a.php

RewriteCond $1 ^[^/]*$
RewriteRule /(.*) /$1/ [R=301,L]
RewriteRule /(.*) /${linkmap:$1} [P]
a、 php使用mysql数据库将临时URL映射到实际URL。例如 temp1/xyz-->应用程序1/xyz

在app1中的任何页面尝试重定向到另一个页面之前,一切正常。因为我是基于mysql映射URL,所以我不知道如何使ProxyPassReference从mysql读取并替换重定向URL。 我已经尝试手动指定ProxyPassReference规则,它可以正常工作。但是手动添加所有规则是不可能的,因为我可以通过向mysql数据库插入链接,通过一些接口动态创建链接


请帮我处理重定向。

我已经找到了解决方法。 所以从rewriterule中我得到了目标url映射,我将其保存在正则表达式中。然后我使用带插值标志的ProxyPassReverse

这里有一个问题。我的程序映射url是用php编写的。它工作正常,但若我看到它后几天,它似乎是程序停止,我得到服务器错误,然后需要重新启动服务器