актуально
Ошибочный редирект с https на http://$host:443

Ошибочный редирект с https на http://$host:443

Ошибка неверного порта при отдельных переходах по страницам характерна не только для Виртуальной Машины, а и многих самостоятельных конфигураций с Nginx. Однако, данная ошибка присутствует во всех VM Bitrix на протяжении последних лет.

Как проявляется баг?

Самыми частыми симптомами появления проблемы являются появившиеся ошибки в отчетах поисковых краулеров Google и Яндекс. В один прекрасный день после перехода на https протокол в отчетах начинают попадаться ошибочные страницы с url - http://host.com:443/page или наоборот https://host.com:80/page

Простым взглядом на строки легко понять, что проблема кроется в том, что страница "находящаяся" на https пытается быть открытой по протоколу http или в "иную сторону".

Зачастую найти точки входа ботов на ошибочные страницы довольно сложно. Это могут быть результаты поиска, переход после авторизации, результаты форм и что угодно еще. Радует то, что по-большому счету искать причину и не нужно. Главное устранить эти "нелогичные" редиректы на уровне сервера.

Отдельным случаем проявления данной проблемы является открытие страницы с <i>ошибкой 400</i>. На данной странице красуется сообщение: The plain HTTP request was sent to HTTPS port

Ошибка 400 - Неверный протокол страницы

Правим конфиги "Виртуалки"

/etc/httpd/bx/conf/bx_ext_fgstockstudio.com.conf

Если у вас на виртуальной машине работает один сайт, то понадобится найти файл конфига Апапч:

/etc/httpd/bx/conf/default.conf

и над ServerAdmin [email protected] вставляем

ServerName  https://YOUR_SITE

При многосайтовой конфигурация виртуалки делаем тоже самое, но в файле нужного сайта bx_ext_YOUR_SITE.conf

Альтернативный способ

Иногда описанного выше недостаточно. Приходится идти глубже и править директивы связанные с страницами ошибок. Ищем файл отвечающий за конфиг nginx нашего ssl домена

/etc/nginx/bx/site_avaliable/ssl.s1.conf

Добавляем error_page 497 https://$host$request_uri;. Получим нечто похожее на:

# Default SSL certificate enabled website
	server {
		listen	443 default_server http2;
		server_name _;

		# Enable SSL connection
		server_name_in_redirect	off;

                proxy_set_header	Host	$host;
		proxy_set_header	X-Real-IP	$remote_addr;
		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
		proxy_set_header	Host		$host:443;
		proxy_set_header	HTTPS	YES;

		set $proxyserver	"http://127.0.0.1:8888";
		set $docroot		"/home/bitrix/www";

		index index.php;
		root /home/bitrix/www;

		include bx/conf/bitrix.conf;

		# Include server monitoring API's
		include bx/server_monitor.conf;

                error_page 497 https://$host$request_uri; 
	}

Проблема должна исчезнуть. Если вам известны иные методы напишите нам в комментариях.


Комментарии
Полезность статьи
0 / 5 5 5 1
На основе 1 оценок
0%
0%
0%
0%
0%
Понравилась статья?
Отлично
Комментарий*
Представьтесь

Возврат к списку