ProxyPass и DocumentRoot на одном домене
Допустим, у меня есть следующая конфигурация:
<VirtualHost domain.com>
# Server names, admins, logs etc...
ProxyVia On
ProxyRequests Off
<Location "/">
ProxyPass http://localhost:8080/tomcat-webapp/
ProxyPassReverse http://localhost:8080/tomcat-webapp/
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Теперь я хочу, чтобы Адрес domain.com/forum
отображал конент моего форума MyBB, файлы которого находятся в каталоге /var/www/forum
. Как этого добиться?3 ответа:
На самом деле я решил эту проблему следующим кодом:
ProxyPass /forum ! ProxyPass / http://localhost:8080/tomcat-webapp/ ProxyPassReverse / http://localhost:8080/tomcat-webapp/ Alias /forum /var/www/forum
Рекомендуется использовать mod_rewrite для выполнения команды ProxyPass вместо команды ProxyPass/ProxyPassReverse.
Попробуйте что-нибудь вроде:
RewriteRule ^/forum - [L] RewriteRule ^/(.*) http://localhost:8080/tomcat-webapp/$1 [P,L] ProxyPassReverse / http://localhost:8080/tomcat-webapp/
Я использую:
<VirtualHost *:80> #other irrelevant configs here ProxyPass /forum http://localhost:8080/myBB ProxyPassReverse /forum http://localhost:8080/myBB ProxyPass / http://localhost:8081/tomcat-app ProxyPassReverse / http://localhost:8081/tomcat-app </VirtualHost>
Вам не нужно говорить "tomcat-app", если ваше приложение tomcat является корневым приложением.