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