Добрый вечер, уже
2 3 дня бьюсь над проблемой,
location ~* ^/.+\.(php)$ { — регулярное выражение из конфига nginx, которое нам говорит, что если запрашиваемый файл *.php, то этот location исполняется.
Передо мною стоит задача: сделать location исключающий php. То есть если в запросе НЕ php, то location обрабатывается.
Вариант
~* .+(!?php)$ у nginx не проходит (он упорно продолжает запрашивать статику с апача, видимо regexp там особенный..).
~* — в nginx означает без учета регистра.
Есть вариант
~* ^(.+?)[^/.php]$, но он не отрабатывает
человеческие ссылки вида
/link2/link3, но отрабатывает
/link2/link3/ (в конце стоит слеш). И приходится переопределять в других location файлы
.h,
.p,
.ph,
.hp,
.*ph и
.*php.
Помогите пожалуйста создать верный location и направить мой nginx на истинный путь.
Если вариант
все в 1 не реализуем, то какие 2 location создать, учитывая специфику nginx?
nginx с оффсайта, скачаны исходники, сконфигурированы под нужны и
make && make install.
submod —
substitutions4nginx мод из
этого топика.
nginx -V
nginx version: nginx/0.8.54<br/>
built by gcc 4.4.5 (Debian 4.4.5-8)<br/>
TLS SNI support enabled<br/>
configure arguments: --with-http_ssl_module --with-pcre --with-http_dav_module --with-http_realip_module --with-http_stub_status_module --with-http_sub_module --with-http_addition_module --add-module=/usr/udata/nginx-0.8.54/submod