Re: работа с псевдодиректорией можно ли без rewrite?

Igor Sysoev igor на sysoev.ru
Ср Апр 4 08:26:58 UTC 2012


On Wed, Apr 04, 2012 at 03:07:51AM -0400, ast-ross wrote:
> location ~ "^/\d{12}/(.*)$" {
>      alias /var/www/vhost/$1;
>      location ~ "^/\d{12}/(.*)\.php$" {
>           fastcgi_pass backend;
>           fastcgi_param HTTPS on;
>           fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
>           fastcgi_index index.php;
>           include fastcgi_params;
>           try_files $fastcgi_script_name = 404;
>           }
>      }
> 
> при таком конфиге переменная
> $fastcgi_script_name будет иметь значение
> /876503948540/index.php
> соответственно SCRIPT_FILENAME будет иметь
> значение /var/www/vhost/876503948540/index.php
> и опять 404... можно сделать так:
> 
> location ~ "^/\d{12}/(.*)$" {
>      alias /var/www/vhost/$1;
>      location ~ "^/\d{12}/(.+\.php)$" {
>           fastcgi_pass backend;
>           fastcgi_param HTTPS on;
>           fastcgi_param SCRIPT_FILENAME $document_root$1;
>           fastcgi_index index.php;
>           include fastcgi_params;
>           try_files $1 = 404;
>           }
>      }
> но как то это не красиво как мне
> кажется...

Увы, из букв А П Ж О нельзя сложить слово ВЕЧНОСТЬ.
Чтобы было красиво, нужно чтобы структура сайта была простая:

location /css/ {
location /js/ {
location /action/ {

Что касается ВЕЧНОСТИ, то сложить можно примерно так:

 location ~ "^/\d{12}(?<NAME>/.*)$" {
      alias /var/www/vhost$name;

      location ~ \.php$ {
           root /var/www/vhost;
           try_files $name =404;

           fastcgi_pass backend;
           fastcgi_param HTTPS on;
           fastcgi_param SCRIPT_FILENAME $document_root$name;
           include fastcgi_params;
      }
 }


-- 
Igor Sysoev



Подробная информация о списке рассылки nginx-ru