На этот вопрос уже есть ответ:
Кажется, у меня возникли проблемы с mod_rewrite Apache для перезаписи URL-запросов при использовании его с mod_proxy для работы в качестве обратного прокси. Таким образом, я пытаюсь перенаправить запросы на неминифицированный CSS на мой миниатюрный CSS, расположенный в другом каталоге.
В настоящее время у меня есть веб-приложение, запрашивающее его CSS, по адресу https://example.com/assets/css/styles.css
. У меня есть мой миниатюрный CSS, хранящийся на https://example.com/assets/css/min/styles.min.css
. Поскольку я не могу изменить код, в котором связан CSS, я хочу использовать Apache mod_rewrite, чтобы преобразовать все запросы для assets / css / styles.css
в assets / css / min / styles.min .css
.
Кроме того, веб-приложение в настоящее время работает на отдельном внутреннем сервере, 192.168.1.100
, поэтому у меня ProxyPass и ProxyPassReverse настроены как
ProxyPass / http://192.168.1.100/
ProxyPassReverse / http://192.168.1.100/
В настоящее время я пробовал добавить
<Location /assets/css>
RewriteEngine On
RewriteBase /assets/css
RewriteCond %{REQUEST_URI} ^/assets/css/((.+)\.css)$
RewriteCond %{DOCUMENT_ROOT}/assets/css/min/%2.min.css -f
RewriteRule ^(.+)$ min/%2.min.css [L]
</Location>
I Я также пробовал добавить косую черту в конце / assets / css
, но это ничего не дало. Я сейчас в растерянности, так как я не лучший в mod_rewrite.
Я думаю, что это, вероятно, связано с взаимодействием между Mod_Proxy и Mod_Rewrite, которое вызывает проблему. Я взял фрагмент блока Location из другого моего проекта и соответствующим образом адаптировал пути к файлам. Он работал правильно в этом проекте, который не использовал Mod_Proxy и напрямую обслуживал контент.
Ваши текущие директивы в блоке
Таким образом, вам придется либо вслепую переписать путь URI к минимизированной версии, либо решить, как выполнить настройку на внутреннем сервере. .
На вашем сервере Apache что-то вроде:
<Location /assets/css> RewriteEngine On RewriteRule ^/assets/css/([^/]+)\.css$ /path/to/min/$1.min.css [L,PT] </Location>