nginx - redirect 301

Станислав server_inc на list.ru
Сб Мар 31 19:20:24 UTC 2012


06.03.2012 14:17, Stepanov Vitaliy написал:
> Спасибо всем кто ответил.
>
> Валентин Бартенев данный вариант,
> который вы предложили:
> server {
> listen 80;
> server_name www.freebsd.ru;
>
> return 301 http://freebsd.ru$request_uri;
> }
>
> Выдает ошибку в браузере, версия nginx -
> nginx/0.8.54:
> На этой странице имеется бесконечная
> переадресация
>
> Да, действительно англоязычная версия
> мануала nginx более расширенная
> оказалась.
>
> В результате взял вот такой код, он
> работает:
> server {
>      listen       80;
>      server_name  www.freebsd.ru  freebsd.ru;
>      if ($http_host = freebsd.ru) {
>          rewrite  (.*)  http://www.freebsd.ru$1 permanent;
>      }
>      ...
> }
>
Валентин Бартенев предложил самый правильный вариант, и он работает!
В этом треде несколько раз писали о том, что не стоит использовать 
конструкцию if(), а вы "наша песня хороша, начиная сначала".
Не понимаю, как люди до сеих пор умудряются лепить if() где попало. Это 
же обсуждалось уже несколько раз, да и сами разработчики говорили, что 
не стоит использовать эту конструкцию. Нет, все же попадаются люди с 
кривыми руками, которые лепят бред что-то вроде:

server_name www.site.ru site.ru tools.site.ru ... ;
if ($host != 'www.site.ru' ) { rewrite ^(.*)$ http://www.site.ru$1 
permanent; }

...игнорируя советы самих разработчиков. Немыслимо глупо.



Подробная информация о списке рассылки nginx-ru