我正在使用具有多租户功能的Crafter CMS。我正在尝试在RHEL7上设置Apache2.4作为反向代理。 http://site.example.com-> ajp:// localhost:9009 /?crafterSite = site
这是我的Apache2虚拟主机配置。我确保已加载mod_proxy和mod_rewrite。我可以通过代理到达Crafter Delivery,但是重写不起作用,因为Crafter不知道我要加载的站点。有谁对如何使它起作用有任何建议。
<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>
答案 0 :(得分:2)
尝试将重写规则更改为:
RewriteRule (.*) $1?crafterSite=site [QSA,PT]
site
是您的站点ID。
区别是:
(.*)
和$1
)PT
(不是重定向)。这意味着它将使用参数扩展请求,并将其直接传递到Crafter Engine。