Welcome! Log In Create A New Profile

Advanced

Re: Вопрос по логике

Sergey Shepelev
September 22, 2009 02:54AM
2009/9/22 Александр <sytar.alex@gmail.com>:
> Добрый день
>
> Есть конструкция вида:
>
> if ($request_filename !~
> (js|css|ico|gif|jpg|png|xml|pdf|gz|images|.html|robots.txt|index.php*) ) {
>        rewrite ^/(.*)$ /index.php/$1 last;
> }
>

..html
это регексп, который матчит .html, jhtml, shtml, Khtml, 0html.

index.php*
это регексп, который матчит index.php, index.ph, index.phpppppp,
indexRph, index9phpp.

Точка матчит любой символ, а звезда матчит предыдущую маску (а
поскольку скобок не было, то один символ) 0 или больше раз (сколько
угодно).

>
> которая должна все файлы кроме статики и index.php отправлять на
> index.php. Но в данный момент она, скажем, не очень гибкая. Как её можно
> переписать получше?
>
>

location = / { rewrite ^ /index.php/ last; }
location / { rewrite ^/(.*) /index.php/$1 last; }
location ~ (js|css|ico|gif|jpg|png|xml|pdf|gz|images|\.html|robots\.txt)$ {
root /path;
expires 6h;
access_log off;
}
location /index.php {
proxy(fastcgi)_pass ...
}

Это нужно, только если вашему PHP скрипту нужно получать запросы на
несуществующие файлы, например, статика *.mjpg в списке расширений
отсутствует. Она попадёт на index.php. Оно надо? Иногда бывает, но
скорее всего - нет.
Поэтому, самый лучший и гибкий вариант просто отдавать все существующие файлы:

location = / { rewrite ^ /index.php/ last; }
location / {
try_files $uri /index.php/$uri; # <- здесь может быть ошибка
root /path;
expires 6h;
access_log off;
}
location /index.php {
proxy(fastcgi)_pass ...
}
Subject Author Posted

Вопрос по логике

Александр September 22, 2009 02:10AM

Re: Вопрос по логике

Sergey Shepelev September 22, 2009 02:54AM

Re: Вопрос по логике

Александр September 22, 2009 03:46AM

Re: Вопрос по логике

Eugene Mychlo September 22, 2009 03:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 247
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