Назад | Перейти на главную страницу

Настройка виртуального хоста apache: обслуживание файлов из каталога, если он существует, возврат к обратному проксированию

Я хочу настроить виртуальный хост 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]