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
|