Welcome! Log In Create A New Profile

Advanced

Re: Групповой location, отдает php как файл

Валентин Бартенев
November 27, 2012 06:28AM
On Tuesday 27 November 2012 04:57:01 Gineaser wrote:
> Здравствуйте. Проблема в следующем.
> Имею несколько локейшинов для Zend-овских проектов вида:
>
> location /main {
> set $application_env production;
> if (!-f $request_filename) {
> rewrite ^.*$ /main/index.php last;
> }
> }
>
> Хочу объеденить их регуляркой в единый локейшен:

Зачем? К тому же, вам rewrite то не нужен.

location /main/ {
try_files $uri /main/index.php;
set $application_env production;
}

> location ~* ^\/(main|my|real|gerb)\b.*$ {
> set $application_env production;
> if (!-f $request_filename) {
> rewrite ^\/(.+)\b.*$ /$1/index.php last;
> }
> }

Намудрили.

location ~* ^/(main|my|real|gerb)/ {
try_files $uri /$1/index.php;
set $application_env production;
}

> Т.е. создаю локейшен озаглавленный регулярным выражением без учета
> регистра, и в него должно попасть все что начинается с example.com/main/ и
> другие. Он отрабатывает
> Идем дальше. Делаю реврайт захватывая часть отвечающую за название
> локейшена (main, my, real и т.д), это тоже работает, проверил подставив в
> адрес перенаправления http://www.$1.ru
> Пробема же в том что при такой конфигурации когда я пытаюсь зайти по
> http://example.com/main, к примеру, мне выдается запрос на скачку файла
> main, который в свою очередь является index.php в директории проекта.
> Без группового локейшена (по отдельности когда заданы) все работает.
> Локейшен отвечающий за php выглядит у меня так (использую php-fpm):
> location ~ \.php$ {
> fastcgi_pass unix:/var/run/php-fpm-www.socket;
> fastcgi_index index.php;
> fastcgi_param PHP_VALUE "session.cookie_domain=.example.com";
> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
> fastcgi_param APPLICATION_ENV $application_env;
> include fastcgi_params;
> }
>
> В чем проблема может крыться?
>

Проблема может крыться в отсутствии любви к чтению документации.

http://nginx.org/r/location/ru - вы изменили тип location с быстрых простых
префиксных, на один сложный с регулярным выражением, изменив при этом и
порядок их обработки относительно вашего "\.php$".

Ваш "location ~ \.php$" теперь должен стоять выше.

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: Групповой location, отдает php как файл

Валентин Бартенев November 27, 2012 06:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 330
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready