ProxyPassMatch почти работает - PullRequest
       6

ProxyPassMatch почти работает

0 голосов
/ 29 февраля 2020

Я пытаюсь настроить обратный прокси на сервере Linux. Мне нужны все запросы на домен, http://new-website.com/, чтобы обслуживать контент из этой структуры подкаталогов моего основного сайта, http://website.com/new-website/.

Я начал пытаясь использовать ProxyPass с этой конфигурацией виртуальных хостов.

<VirtualHost *:80>
    ServerName new-website.com
    ServerAlias www.new-website.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    ProxyPass "/" "http://website.com/new-website/"
</VirtualHost>

Я понял, что после того, как я это настрою, это будет работать только для указанного правила c. Поэтому я попытался обновить это с использованием подстановочных знаков, но затем понял, что ProxyPass не принимает подстановочные знаки. Поэтому я настроил новое правило, используя ProxyPassMatch для использования подстановочных знаков.

<VirtualHost *:80>
    ServerName coastalplainbbq.com
    ServerAlias www.coastalplainbbq.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    ProxyPassMatch ^/(.*)$ http://fitzgerald.asystyou.tech/coastal-plain-bbq/$1
</VirtualHost>

Это работает для этого сценария:

http://new-website.com/

, которое отображает содержимое из соответствующего подкаталога на моем главном сайте:

http://website.com/new-website/

Но когда я пытаюсь развернуть еще один уровень, обратный прокси перестает работать, и в адресной строке браузера отображается основной URL сайта с подкаталогом. Пример:

http://new-website.com/subdirectory-1/

Это должно сохранить URL в адресной строке браузера так же, как я ввел его выше, и отобразить содержимое:

http://website.com/new-website/subdirectory-1/

Но вместо этого URL в браузерах адресная строка переключается и показывает URL для основного сайта. Я обновил правило ProxyPassMatch еще раз, пытаясь правильно захватить сценарий ios.

<VirtualHost *:80>
    ServerName coastalplainbbq.com
    ServerAlias www.coastalplainbbq.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
    ProxyPassMatch ^/(.*?)(/.+?)?$ http://fitzgerald.asystyou.tech/coastal-plain-bbq/$1
</VirtualHost>

Это также не работает. Это дает мне тот же результат, что и оригинальное правило ProxyPassMatch. Основной домен отображается и работает правильно, но после добавления подкаталога URL-адрес в адресной строке браузера переключается на исходный URL-адрес.

Я все еще новичок в Linux / Apache, и у меня кончились идеи. У меня есть правило, которое выполняет ту же самую вещь, настроенную с Windows / IIS, и я попытался использовать здесь тот же лог c, но он не работает.

Кажется, я близок к этой работе Но я застрял. Помогите пожалуйста.

...