【问题标题】:Apache 2.4 proxy add request parameter to all requetsApache 2.4 代理向所有请求添加请求参数
【发布时间】:2018-12-14 09:47:28
【问题描述】:

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

【问题讨论】:

    标签: mod-rewrite apache2 mod-proxy crafter-cms


    【解决方案1】:

    尝试将重写规则更改为:

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

    site 是您的站点 ID。

    区别在于:

    • 无论 URL 是什么,它都会重写任何传入的内容并保留它(参见 (.*)$1
    • 这是一个直通PT(不是重定向)。这意味着它会使用参数增加请求,并直接传递给 Crafter Engine。

    【讨论】:

    • 这成功了!非常感谢,我已经为此苦苦挣扎了太久了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多