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
|