Прокси-сервер Apache 2.4 добавляет параметр запроса ко всем запросам

Я использую Crafter CMS с мультиарендностью. Я пытаюсь настроить Apache2.4 на RHEL7 как обратный прокси. 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>

person JWilliams    schedule 05.07.2018    source источник


Ответы (1)


Попробуйте изменить правило перезаписи следующим образом:

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

Где site — идентификатор вашего сайта.

Различия:

  • Он перезаписывает все, что приходит, независимо от URL-адреса, и сохраняет его (см. (.*) и $1)
  • Это транзит PT (не редирект). Это означает, что он дополняет запрос параметром и пропускает его прямо в Crafter Engine.
person sumerz    schedule 06.07.2018
comment
Это сработало! Большое спасибо, я слишком долго билась об это головой. - person JWilliams; 06.07.2018