ПРОЕКТЫ 


  АРХИВ 


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: Перенос правил с Apache для nginx



On Mon, Sep 10, 2012 at 07:44:05AM -0400, Darwin wrote:
> Андрей Василишин Wrote:
> -------------------------------------------------------
> > 10.09.2012 12:53, Darwin пишет:
> > > Привет всем. Помогите пожалуйста правильно конвертировать правила
> > для NGINX,
> > > так как со стандартного конверта они не работают =(
> > >
> > > ### Редиректы с site.ru/category/index.php на site.ru/category/ и
> > др.
> > > RewriteCond %{REQUEST_FILENAME} !-f
> > > RewriteCond %{REQUEST_FILENAME} !-d
> > > RewriteCond %{REQUEST_URI} (.*) index\.php$
> > > RewriteRule ^(.*) index\.php$ $1 [R=301,L]
> > >
> > > ### Редиректы с index.php на сайт
> > > RewriteBase /
> > > RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
> > > RewriteRule ^index\.php$ / [R=301,L]
> > > RewriteCond %{REQUEST_FILENAME} !-f
> > > RewriteCond %{REQUEST_FILENAME} !-d
> > > RewriteRule . /index.php [L]
> > 
> > 
> > http://nginx.org/en/docs/http/converting_rewrite_rules.html#converting
> > _mongrel_rules
> > 
> > к примеру конструкция
> > 
> > RewriteCond %{REQUEST_FILENAME} !-f
> > RewriteCond %{REQUEST_FILENAME} !-d
> > RewriteRule ^(.*)$ ./index.php
> > 
> > в нгинкс выглядит так:
> > 
> > try_files $uri $uri/ /index.php;
> 
> Трудно что либо понять... ну да ладно, разберемся...

Понять действительно трудно. Например, что должно делать вот это:

RewriteCond %{REQUEST_URI} (.*) index\.php$

при том, что параметров у RewriteCond - два. К чему "index\.php$"
Может быть там "(.*)/index\.php$" ?

Тогда как-то так:

location / {
    try_files $uri $uri/  @fastcgi;
}

location ~ "^(?<DIR>.*/)index\.php$" {
    internal;
    error_page 404 =301 http://$host$DIR;

    fastcgi_pass ...
    ...
}

location @fastcgi {
    fastcgi_pass ...
    ...
}


-- 
Igor Sysoev

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.