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

ProxyPass только если файл не существует

Я видел такой пример:

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]

Мне нужна аналогичная вещь, которая будет делегировать mod_proxy (т.е. делать ProxyPass), когда статический файл не существует. Это выполнимо?

Эта установка с P flag - то, что вам нужно. В документ о флаге P состояния:

Используйте этот флаг (P), чтобы получить более мощную реализацию директивы ProxyPass.

Некоторые вещи о примере: как сказал Эндрю в своем ответе, DOCUMENT_ROOT не обязательно.

Во-вторых, просто обратите внимание на то, где находятся эти инструкции: удалите первый "/" RewriteRule (^ (. *) $), Если вы поместите это в или подобный контейнер ...

А флаг P подразумевает флаг L, поэтому он не используется, но может прояснить его, если мы его оставим. Также необходимо указать "/" после веб-адреса.

Таким образом, это может выглядеть примерно так:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://somewhere/$1 [P,QSA,L]