ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Правила из htaccess



On Mon, May 25, 2009 at 01:46:28AM +0400, demiart_gmail wrote:

> Приветствую всех !
> 
> Товарищи, если не затруднит, подскажите по переписыванию Rewrite'ов из 
> .htaccess в nginx.
> Есть следующая небольшая конструкция:
> 
> RewriteBase /
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]  
> RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
> RewriteRule ^(content/|component/) index.php
> 
> посидев в манувле(до этого не пользовался try_files), получилась следующая 
> конструкция:
> 
>         location / {
>             index index.php index.html index.htm;
>             try_files $uri $uri/ @joomla;
>         }
> 
>         location ~* \.(html|htm) {
>             try_files $uri @joomla;
>         }
> 
>         location ~* /[^.]*$ {
>             try_files $uri @joomla;
>         }
> 
>         location ~ \.php$ {
>             try_files $uri @joomla;
>             fastcgi_pass   unix:/tmp/php-fpm.sock;
>             fastcgi_index  index.php;
>             fastcgi_param  SCRIPT_FILENAME  
> $document_root$fastcgi_script_name;
>             include        fastcgi_params;
>         }
> 
>         location @joomla {
>             fastcgi_pass   unix:/tmp/php-fpm.sock;
>             fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
>             include        fastcgi_params;
>         }
> 
> в общем-то все работает, но хотелось-бы узнать, насколько правильно все это 
> получилось, может есть какой-то более рациональный вариант ? а то у меня 
> ощкщение что перемудрил) 

Первые три location'а можно заменить на одно:

         location ~* (\.html?|/|/[^.]*)$ {
             index index.php index.html index.htm;
             try_files $uri $uri/ @joomla;
         }
 
> и еще, там есть закомментированная строка(опциональная), я так и не понял, 
> как ее во все это вписать, так-же отдельным локейшном ? подскажите, если не 
> сложно. .)

Возможно, как-то так:

         location ^~ /component/option,com {
             index index.php index.html index.htm;
             try_files $uri $uri/ @joomla;
         }

         location ~* (\.html?|/|/[^.]*)$ {
             ...


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.