Я хочу настроить виртуальный хост apache 2.4 для обслуживания «физических» файлов, которые существуют в каталоге var / www / html (например, robots.txt).
Если запрошенный URI не является существующим файлом, следует использовать правила обратного прокси.
Я читал об условном ProxyPassing вот так
<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>
и после этих строк я поставил свои директивы местоположения.
Но это не работает, вместо этого он говорит AH00526: Syntax error on line 45 of /etc/apache2/sites-enabled/000-default.conf:
ProxyPass cannot occur within <If> section
Я читал об этом здесь: https://serverfault.com/a/655873/149187 (не принятый ответ, но 3 голоса за).
Как я могу использовать if-tag? Или есть лучший способ достичь того, что я ищу? Спасибо, что указали мне правильное направление!
Примерно так (не проверял):
RewriteEngine on
RewriteCond "/var/www/html/%{REQUEST_URI}" !-f
RewriteRule "^/(.*)$" "http://localhost:7080/$1" [P]