Welcome! Log In Create A New Profile

Advanced

Реврайты

Sergiy Kukunin
February 02, 2010 07:20PM
Добрый день. Есть сайт на друпале. Отличается от тривиального случая тем,
что он в подпапке drupal. Для него прописан rewrite.
Всего используется два location'а:

>
> *location /drupal {*

* if (!-e $request_filename) {*

* rewrite ^/drupal(.*) /drupal/index.php?q=$1 last;
*

* }*

* }*

*
*

*

location ~ \.php$ {

fastcgi_pass unix:/var/run/php-fpm/php.socket;

fastcgi_index index.php;

include /etc/nginx/fastcgi_params;

}


Все работает замечательно. Но, недавно заметил интересное поведение:
Если URI заканчивается на .php ( запрашивается php файл, пусть даже
несуществующий ), nginx вернет мне 404 ошибку с текстом от fastcgi: No input
file specified.
Полез читать документацию про location. Ищутся сначала простые location'ы,
потом с регулярными выражениями. Если найден с регуляркой - выполняем. Если
нет - найболее подходящий location без регулярки. Понимаем, что URI
заканчивается на .php - тогда сразу скрипт передается на исполнение, и имел
он ввиду первый location. Ладно. Делаем так, чтобы приоритетней был первый
location.
Заменяем location /drupal на location ~ /drupal ( делая из него регулярное
выражение ). Однако, с таким положением, хоть и реврайты срабатывают,
возвращается текст php. Т.е., после нахождения нужного location'а, и
применение rewrite'а, дальше поиск не идет.
Можно подумать, что идет зацикленность. После применение rewrite'а nginx
все равно попадает в первый location. Но, в документации сказано, что таких
переходов может быть до 10 штук. После этого nginx возвращает 500 ошибку.
Так что, незнаю, почему такое поведение.

*
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Реврайты

Sergiy Kukunin February 02, 2010 07:20PM

Re: Реврайты

Daniel Podolsky February 02, 2010 08:12PM

Re: Реврайты

Sergiy Kukunin February 03, 2010 02:58AM

Re: Реврайты

Slava Kokorin February 03, 2010 03:08AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 239
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready