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

时间:2018-07-05 20:22:39

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

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

1 个答案:

答案 0 :(得分:2)

尝试将重写规则更改为:

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

site是您的站点ID。

区别是:

  • 它会重写所有传入的内容,无论URL是什么,并保留它(请参阅(.*)$1
  • 这是直通PT(不是重定向)。这意味着它将使用参数扩展请求,并将其直接传递到Crafter Engine。