Re: Помогите с редиректом

Maxim Dounin mdounin at mdounin.ru
Tue Jul 15 12:22:16 UTC 2014


Hello!

On Tue, Jul 15, 2014 at 04:41:45AM -0400, luckysrg wrote:

> Всем привет, очень нужна помощь, сайт был полностью на https, в связи с этим
> были характерные проблемы с поисковикми, не индексиравались картинки, нет
> favicon. Собственно, нужно теперь поставить 301 редирект на все страницы с
> https, но оставить редирект на https в личный кабинет и на страницу оплаты,
> с первой частью вопросов нет, но, вот, чтобы обе части выполняли условия не
> получается, прошу помощи.
> 
> 
> вот пациент
> 
> server {
> 		server_name example.ru www.example.ru;
> 		listen 144.*.*.*;
> 		listen 144.*.*.*:443 ssl;
> 		disable_symlinks if_not_owner from=$root_path;
> 		set $root_path /var/www/example/data/www/example.ru;
> 		#rewrite  ^(.*) https://$host$1 permanent;
> 		if ( $scheme = "http" ) {
> 	      rewrite ^/(.*)$	https://$host/$1 permanent;
>         }

Начать имеет смысл с простого: разделить http и https, описав их в 
разных блоках server{}.  И соответственно перенаправления делать - 
в зависимости от выбранного server'а / location'а, а не играть в 
игры с проверкой переменных в рамках "единого" сервера:

    server {
        listen 443 ssl;
        server_name example.com;
        ...
    }

    server {
        listen 80;
        server_name example.com;
        return 301 https://$server_name$request_uri;
    }

После этого большая часть проблем должна отпасть.

-- 
Maxim Dounin
http://nginx.org/



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