Простой редирект средствами nginx

Mike Kolesnikov mozilla_bugs at mail.ru
Wed Feb 2 14:18:55 MSK 2005


Igor Sysoev wrote:

> Сейчас redirect просто добавляет полный URI к параметру.
> На днях я полностью переписал rewrite - там будет возможность делать
> редиректы.

Замечательная новость! После гибкости mod_rewrite постоянно упираешься в косяки,
подобные этому...
А что Вы можете сказать по поводу "зацикливания" редиректа?
Вроде как URI /forums/index.php не должен попадать в location = /forums/ ?

> Если редирект не обязяателен, то можно сделать так:
>         location = /forums/ {
>                fastcgi_pass  localhost:1234;
>                ...

Вся идея как раз в редиректе, причем желательно 301 - для SEO :)


Раз уж речь зашла о редиректах и rewrites, может кто-нибудь делал
конструкцию для поддержки юзерских директорий плана domain.com/~user/?
Для простоты, чтоб не трогать getpwent, предполагаем, что все они
лежат в /home/user/web.

Вроде бы вот это работает:

  rewrite ^/~([\w-]+)/(.*)$       /home/$1/web/$2 last;

  location ~* ^/home/([\w-]+)/web/ {
         root /;
         index index.htm index.html index.php;
  }

Но тогда становится возможным такой URL: http://domain.com/home/user/web/file,
что не очень хорошо. Конечно, никто наверное и не заметит, но запрос
domain.com/~user/dir (без конечного слэша) автоматом перенаправляет как раз
на http://domain.com/home/user/web/dir/

Хотя, если версия с новым rewrite модулем планируется к выходу вскоре, то вопрос
наверное не актуален - надеюсь, там такие вещи будут делаться проще.





More information about the nginx-ru mailing list