Apache 2.4代理向所有请求添加请求参数

Apache 2.4 proxy add request parameter to all requets

我正在使用多租户的 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>

尝试将重写规则更改为:

RewriteRule (.*) ?crafterSite=site [QSA,PT]

其中 site 是您的站点 ID。

区别是:

  • 它会重写任何传入的内容,而不管 URL 并保留它(请参阅 (.*)</code>)</li> <li>这是直通 <code>PT(不是重定向)。这意味着它用参数增加了请求,并让它直接进入 Crafter 引擎。