Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Нужна помощь 	с rewrite
 
 
On Wed, Feb 20, 2008 at 10:59:07AM +0300, Prohor Utishev wrote:
> После многочисленных попыток так и не удалось переделать rewrite Apache 
> в nginx.
> 
> В .htaccess имеем:
> 
> RewriteEngine  On
> RewriteBase    /
> RewriteCond    %{REQUEST_URI}          ^/$     [OR]
> RewriteCond    %{REQUEST_FILENAME}     !-d
> RewriteCond    %{REQUEST_FILENAME}     !-s
> RewriteCond    %{REQUEST_FILENAME}     !-l
> RewriteRule    (.*)                    /index.php/$1
> 
> В  итоге пришел к рабочей конструкции:
> 
>        root          /home/www;
>        if (!-e $request_filename) {
>        rewrite ^(.*)$ /index.php?q=$1 last;
>        }
> 
> но нужно получить как в .htaccess /index.php/$1, а такой редирект отдаёт 
> 404 ошибку.
А куда это потом уходит ? Если в FastCGI, то, скорее всего, $1 нужно
засовывать в PATH_INFO. Я бы это чудо PHP-мысли переписал бы так:
        location = / {
            fastcgi_pass   ...
            fastcgi_param  SCRIPT_FILENAME  /home/www/index.php;
            ...
        }
        location / {
            ...
            error_page 404 = @fallback;
        }
        location @fallback {
            fastcgi_pass   ...
            fastcgi_param  SCRIPT_FILENAME  /home/www/index.php;
            fastcgi_param  PATH_INFO        $uri;
            ...
        }
-- 
Игорь Сысоев
http://sysoev.ru
 
 |