Проблема с rewrite

Igor Sysoev is at rambler-co.ru
Thu Aug 14 17:29:06 MSD 2008


On Thu, Aug 14, 2008 at 11:51:18AM +0400, eMASTER wrote:

> Прошу помочь разобраться со следующей проблемой:
> 
> нужно перевести маленький .htaccess под nginx
> 
> =================================================
> код htaccess:
> 
> AddDefaultCharset UTF-8
> DirectoryIndex index.php
> 
> RewriteEngine On
> RewriteBase /
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule . /index.php [L]
> =================================================
> код nginx:
> 
> location / {
>     root   /var/www;
>     index  index.php;
> 
>     if (!-f $request_filename){
>          rewrite .* /index.php last;
>     }
> 
>     if (!-d $request_filename){
>          rewrite .* /index.php last;
>     }
> }
> =================================================
> 
> В firefox 3 выводит ошибку "Redirect Loop", как лечить?

Потому что один и тот же файл не может одновременно и каталогом, и файлом:
-d и -f нужно заменить на -e.

А вообще, нужно делать так:

  location / {
      root  /var/www;
      index  index.php;
      error_page  404 = /index.php?$args;
  }


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list