nginx rewrite http to https

Pavel V. pavel2000 at ngs.ru
Thu Feb 14 05:56:45 UTC 2013


Здравствуйте, Твердиков.

Вы писали 14 февраля 2013 г., 12:22:54:

> Добрый день!
> Есть такой конфиг:
> =============
> server_name
>      www.site.ru
>      www.site.com
>      www.site.nl
>      m.site.com
>      ns.site.ru
>      m.site.ru
>      main.site.ru
>      ls.site.ru
>      ans.site.ru

> location / {
> ....
> }
> ==============
> Задача состоит в том чтобы все кроме запросов на ans.site.ru/ans и 
> www.site.ru/ans перенаправить на https
> изменяю конфиг так:
> ==============
> server_name
>      www.site.ru
>      www.site.com
>      www.site.nl
>      m.site.com
>      ns.site.ru
>      m.site.ru
>      main.site.ru
>      ls.site.ru
>      ans.site.ru

> set $complete_url "$host$uri";

>      if ( $complete_url !~ '^ans.site.ru/ans' ) {
>          rewrite ^(.*)$ https://$host$1 permanent;
>      }
>      if ( $complete_url !~ '^www.site.ru/ans' ) {
>          rewrite ^(.*)$ https://$host$1 permanent;
>      }

> location / {
> ....
> }
> ===============
> Но почему то на https перенаправляется все, и ans.site.ru/ans и 
> www.site.ru/ans
> ЧЯДНТ?

Для начала, нужно очень сильно забыть что такое if.

Далее, нужно вынести  ans.site.ru и www.site.ru в отдельный блок server {}
Далее, в этом блоке надо описать location /ans {} , в нем сделать необходимые действия.

В первом server {} и в новом server {} описать location / {} и в нем прописать реврайты.




-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



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