Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

nginx ssi on через rewrite

Мне нужно, что бы SSI в Nginx был включен не на всех страницах, а только в определенном location Вот (упрощенный) пример конфига, который у меня работает: location = /main.php { ssi on; include php5_provider; } так ssi включается, а мне нужно, что бы он включался в следующем виде: location ~* ^/[-\w]+\.htm$ { ssi_types *; ssi on; rewrite ^ /main.php?$uri last; }
location = /main.php { include php5_provider; } Вот так SSI у меня не работает. $nginx -t проходит нормально, но следующий ssi блок никак не обрабатывается: Как это можно исправить? UPDATE: Временно изобрел такой костыль: location ~* ^/[-\w]+\.htm$ { ssi on; include php5_provider; fastcgi_param SCRIPT_NAME /main.php; fastcgi_param SCRIPT_FILENAME $document_root/main.php; fastcgi_param QUERY_STRING $uri&$query_string; break; } Уверен, существует более элегантное и гибкое решение.


Ответ

Просто инструкция "rewrite ^ /main.php?$uri last;" забирает все запросы на себя (в скрипт main.php) и дело до SSI не доходит.

Комментариев нет:

Отправить комментарий