Algo parecido (não testado):
RewriteEngine on
RewriteCond "/var/www/html/%{REQUEST_URI}" !-f
RewriteRule "^/(.*)$" "http://localhost:7080/$1" [P]
Eu quero configurar um virtualhost do apache 2.4 para servir arquivos 'físicos' que existem no diretório 'var / www / html' (como o robots.txt, por exemplo).
Se o URI solicitado não for um arquivo existente, as regras de proxy reverso devem ser usadas.
Eu li sobre ProxyPassing condicional assim
<If "! -f %{REQUEST_FILENAME}">
#ProxyPassReverseCookiePath / /author
ProxyPassReverseCookieDomain localhost mywebsite.com
#ProxyPass / ajp://localhost:7009/
#ProxyPassReverse / ajp://localhost:7009/
ProxyPass / http://localhost:7080/
ProxyPassReverse / http://localhost:7080/
</If>
e depois dessas linhas eu colocaria as diretivas de localização.
Mas isso não funciona, em vez disso, ele está dizendo AH00526: Syntax error on line 45 of /etc/apache2/sites-enabled/000-default.conf:
ProxyPass cannot occur within <If> section
Eu li sobre isso aqui: link (não a resposta aceita, mas 3 votos positivos).
Como posso usar a tag if? Ou existe uma maneira melhor de alcançar o que estou procurando? Obrigado por me apontar na direção certa!
Algo parecido (não testado):
RewriteEngine on
RewriteCond "/var/www/html/%{REQUEST_URI}" !-f
RewriteRule "^/(.*)$" "http://localhost:7080/$1" [P]