mod-rewrite - Apache 2.4代理为所有请求添加请求参数

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

我正在使用具有 Multi-Tenancy 功能的 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 (.*) $1?crafterSite=站点 [QSA,PT]

其中 site 是您的网站 ID。

差异是:

  • 无论 URL 如何,它都会重写传入的任何内容并保留它(请参阅 (.*)$1)
  • 这是直通PT(不是重定向)。这意味着它会使用参数增强请求并使其直接到达 Crafter Engine。

关于mod-rewrite - Apache 2.4代理为所有请求添加请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51199302/

相关文章:

php - 使用 htaccess 忽略链接的某些部分

apache - 如何删除和避免 htaccess 中的 url 目录

php - .htaccess条件: https, www,重写

php - 找不到 Laravel 5 路由 404

mod-rewrite - 如何在使用通配符的 Directory 指令中使用 apache2 mod_rewrite?

django - 强制 django_compressor 重新编译 css/less 文件

php - jmeter多用户问题

java - Apache mod_proxy 和 Tomcat 出现 Bad Gateway 502 错误

linux - 哪个负载均衡器的性能更好 mod_jk 或 mod_proxy 或任何其他开源

ubuntu - nginx - 隐藏代理主机+端口+路径