Правила из htaccess

Igor Sysoev is at rambler-co.ru
Mon May 25 10:13:20 MSD 2009


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





More information about the nginx-ru mailing list