Mod rewrite Apache2.4代理向所有请求添加请求参数
我正在使用多租户的Crafter CMS。我正在尝试将RHEL7上的Apache2.4设置为反向代理。->ajp://localhost:9009/?crafterSite=site 这是我的Apache2虚拟主机配置。我已经确保加载了mod_proxy和mod_rewrite。我可以通过代理达到Crafter交付,但重写不起作用,因为Crafter不知道我要加载哪个站点。有没有人对如何让它工作有什么建议Mod rewrite Apache2.4代理向所有请求添加请求参数,mod-rewrite,apache2,mod-proxy,crafter-cms,Mod Rewrite,Apache2,Mod Proxy,Crafter Cms,我正在使用多租户的Crafter CMS。我正在尝试将RHEL7上的Apache2.4设置为反向代理。->ajp://localhost:9009/?crafterSite=site 这是我的Apache2虚拟主机配置。我已经确保加载了mod_proxy和mod_rewrite。我可以通过代理达到Crafter交付,但重写不起作用,因为Crafter不知道我要加载哪个站点。有没有人对如何让它工作有什么建议 <VirtualHost *:80> ServerName site.
<VirtualHost *:80>
ServerName site.example.com
LogLevel alert rewrite:trace3
RewriteEngine On
RewriteRule ^$ /?crafterSite=site [QSA,L]
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / ajp://localhost:9009/
ProxyPassReverse / ajp://localhost:9009/
</VirtualHost>
ServerName site.example.com
日志级别警报重写:trace3
重新启动发动机
重写规则^$/?crafterSite=站点[QSA,L]
命令允许,拒绝
通融
代理请求关闭
代理主机
ProxyPass/ajp://localhost:9009/
ProxyPassReverse/ajp://localhost:9009/
尝试将重写规则更改为:
RewriteRule(.*)$1?crafterSite=站点[QSA,PT]
其中site
是您的站点ID
区别在于:
- 它重写任何传入的内容,而不考虑URL并保留它(请参见
和(.*)
)$1
- 这是一个passthrough
(不是重定向)。这意味着它使用param扩展请求,并让它直接进入Crafter引擎PT