Я пытаюсь настроить обратный прокси на сервере 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, но он не работает.
Кажется, я близок к этой работе Но я застрял. Помогите пожалуйста.