301 редирект с http на https битрикс: Битрикс — Как настроить 301 редирект с HTTP на HTTPS-версию сайта

Переход на https для сайта на 1С Битрикс

Когда пользователь нажимает на сайте ссылку или заполняет форму авторизации, на сервер отправляется запрос. Если используется протокол http, то данные передаются в открытом виде, что небезопасно, т.к между клиентом и сервером есть посредники(роутеры, провайдеры…), через которые можно перехватить данные.

Крупные интернет-ресурсы стали переходить на https с начала 2000-х годов. Причина — защищенное хранение данных, https с помощью шифрования обеспечивает защиту соединения между клиентом и сервером.

Почему актуально переводить сайт на https?

1. Защищенное соединение.
2. C 2017 года Google Chrome будет отмечать сайты, работающие по протоколу http, как «незащищенные», что, в конечном счете, скажется на посещаемости.
3. Для Google теперь наличие SSL-сертификата является фактором ранжирования.

Становится очевидным, что переходить на https нужно, т. к он дает конкурентные преимущества.

Но как перейти на защищенный протокол не потеряв позиции сайта?

Ведь поисковики считают разными ссылки с протоколами https и http.

Ответ: Ни Яндекс ни Google не дают гарантии, что позиции сохранятся. Однако, опыт показывает, что позиции после перехода только растут, главное, следовать инструкции.

Инструкция по переводу сайта на 1С Битрикс с http на https протокол.

Для начала, вам потребуется обратиться на хостинг, купить SSL-сертификат и установить его. Этот процесс описывать не стану, т.к им занимаются администраторы сервера, на котором находится ваш сайт.

Заменить все ссылки с http на относительные или абсолютные ссылки c протоколом https.

Например, /company/ — относительная ссылка
http://mysite.ru/company/ — абсолютная ссылка с протоколом http
https://mysite.

ru/company/ — абсолютная ссылка с протоколом https
//mysite.ru/company/ — абсолютная ссылка с относительным протоколом

Просматриваем, а лучше сканируем программно, все тексты с абсолютными ссылками и делаем их относительными.

На всех внешних ресурсах, где установлены ссылки на ваш сайт, замените в ссылках протокол на https.

Меняем в настройках карты сайта протокол соединения и заново генерируем файл sitemap.xml.

В robots.txt HOST теперь можно не указывать, подробнее читайте в статье Яндекса 301 редирект полностью заменил директиву HOST

Настраиваем вебмастера Яндекса и Google.

Добавляем новый ресурс https://mysite.ru
В прежнем Яндекс.Вебмастере (http://mysite.ru/) на странице Индексирование-Переезд сайта указываем «Добавить HTTPS». По времени этот переезд обычно занимает 3-4 недели.

Передаем в вебмастера ссылку на sitemap.

xml и обновляем robots.txt.
Также вам нужно перенести всю информацию с прежнего Яндекс.Вебмастера, такую как геотаргетинг, товары, справочник организаций и т.д
Ошибки сканирования удобнее смотреть через вебмастер google.

Проверьте формы обратной связи.

В некоторых случаях аяксовые запросы указывают абсолютные ссылки, значит будет появляться ошибка отправки данных, не будут работать формы.

Проверьте выгрузки на торговые площадки, такие как Яндекс.Маркет.

В кастомных выгрузках протокол может быть жестко прописан.
Все файлы выгрузки нужно сгенерировать заново.

В настройках интеграции с 1С укажите ссылку с https

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

Ссылка должна выглядеть так:
https://site. https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Критерий успешности перехода на https:
— сайт просканирован, для всех страниц код ответа сервера 200
— вебмастера Яндекса и Google настроены, в них передан sitemap.xml с новыми ссылками и обновлен robots.txt
— в robots.txt прописан HOST с https и Sitemap с https
— в экспортируемых файлах ссылки с https
— интеграция с 1С проходит без ошибок

Стоимость: от 10 000 ₽


Поделиться:

В список услуг

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

СМСдизайн

актуально

Главная

Блог

Битрикс

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

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

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

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

Простым взглядом на строки легко понять, что проблема кроется в том, что страница «находящаяся» на https

пытается быть открытой по протоколу http или в «иную сторону».

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

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

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

/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; }

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

Решение наверняка 🙂

Если не помогло все вышеописанное и ошибка остается — то причина в файле настроек nginx :

/etc/nginx/bx/site_avaliable/bx_ext_s1.conf

Нужен именно файл обычного протокола http (bx_ext_), а не https (bx_ext_ssl)

Добавляем return 301 https:/YourDomain.com$request_uri;. Получим нечто похожее на:

# Ansible managed
# Additional website http
server {
		listen 80 ;
		server_name YourDomain.com www.YourDomain.com;
		return 301 https://YourDomain.com$request_uri;
.
.. ... error_page 497 https://$host$request_uri; }

В 2020 году кроме коронавируса появилось еще что-то новое … и иногда нужно колдовать совсем не с nginx, а с http. Альтернативное решение описали тут.


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

Выполнить перенаправление 301 с http на https в Apache Tomcat

спросил

Изменено 5 лет, 9 месяцев назад

Просмотрено 4к раз

Я настроил SSL в своем веб-приложении. Я установил сертификат в свой Tomcat в соответствии с необходимыми шагами.

Учебник, которому я следовал, https://www.mulesoft.com/tcat/tomcat-security

Я принудительно использовал https поверх http, что означает, что любой запрос на http будет перенаправлен на https. Я внес следующие изменения в свой server.xml

 
 
  • Подробнее: https://www.mulesoft.com/tcat/tomcat-security#sthash.6zIVA27x.dpuf

Изменения web.xml следующие:

 <ограничение безопасности>
    <коллекция веб-ресурсов>
        SecureConnection
        /*
    
<ограничение пользовательских данных> КОНФИДЕНЦИАЛЬНО

Однако выполняемое перенаправление является временным перенаправлением, т.е. 302. Я хочу использовать переадресацию 301, т.е. постоянную переадресацию.

Как мне этого добиться?

  • апач
  • кот
  • SSL

4

Это настроено в вашем Царстве. См. атрибут transportGuaranteeRedirectStatus вашей конкретной реализации Realm.

https://tomcat.apache.org/tomcat-8.5-doc/config/realm.html

Пример: server.xml имеет это готовое

 
    
    
  
 

Он не устанавливает transportGuaranteeRedirectStatus , поэтому по умолчанию используется 302. Если вы хотите, чтобы он использовал 301, просто добавьте атрибут transportGuaranteeRedirectStatus="301" в Realm верхнего уровня (у вас может не быть вложенных Realms в зависимости от вашей конфигурации) и перезапустите Tomcat.

Пример:

 
    
    
  
 

Если в вашей конфигурации не определен тег Realm, Tomcat по умолчанию будет использовать NullRealm. Если вы хотите переопределить перенаправление в этой ситуации, вам просто нужно определить NullRealm с установленным на нем свойством transportGuaranteeRedirectStatus .

Надеюсь, это поможет!

Зарегистрируйтесь или войдите

Зарегистрироваться через Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

ruby ​​on rails — Как правильно перенаправить сайт с http на https без потери индексации Google

спросил

Изменено 4 года, 5 месяцев назад

Просмотрено 731 раз

Недавно я добавил поддержку SSL для старого веб-сайта Rails 2. 3.1. У меня есть следующий код для перенаправления с http на https:

Контроллер приложений:

 before_filter :need_ssl
защищенный
  защита need_ssl
    если RAILS_ENV=="производство"
      redirect_to "https://#{request.host}#{request.request_uri}", если только request.ssl?
    конец
  конец
 

Однако я получил сообщение от Google:

 Приблизительно 80% ваших HTTP-страниц, которые были проиндексированы до миграции, больше не могут быть найдены ни на вашем сайте HTTP, ни на HTTPS.
 

Я посмотрел и обнаружил, что 572 был исключен из индексации из-за редиректа.

Как добавить правильный код для перенаправления, чтобы не потерять индексацию?

  • ruby-on-rails
  • https
  • http-redirect

0

Это то, что я обычно делаю, чтобы перенести свой сайт на https .

Перенаправить весь трафик http на https с 301 перенаправлением на моем сервере nginx настроить

 {
    слушать 80;
    имя_сервера myawesomewebsite. com;
    вернуть 301 https://myawesomewebsite.com$request_uri;
}
 

Включить force_ssl в config/application.rb

 config.force_ssl = true
 

Редактировать: Спасибо всем за то, что проголосовали за мой ответ. Но, пожалуйста, также проверьте ответ @agilejoshua, так как он поместил много полезной информации.

6

Рекомендации Google

У Google есть особые рекомендации по перемещению сайта для начала использования SSL

Использовать серверную переадресацию 301

Перенаправьте своих пользователей и поисковые системы на страницу или ресурс HTTPS с помощью HTTP-перенаправления 301 на стороне сервера.

Переход с HTTP на HTTPS

Если вы переносите свой сайт с HTTP на HTTPS, Google рассматривает это просто как перемещение сайта с изменением URL-адреса. Это может временно повлиять на некоторые из ваших номеров трафика.

https://support.google.com/webmasters/answer/6073543

Это считается перемещением сайта с изменением URL

Перемещение сайта с изменением URL

URL-адреса страниц изменились.

Например: протокол меняется — с http://www.example.com на https://www.example.com

Ожидайте временные колебания рейтинга сайта во время переезда.

При любом значительном изменении сайта вы можете столкнуться с колебаниями рейтинга, пока Google повторно сканирует и переиндексирует ваш сайт. Как правило, для веб-сайта среднего размера перемещение большинства страниц в наш индекс может занять несколько недель; большие сайты могут занять больше времени. Скорость, с которой робот Googlebot и наши системы обнаруживают и обрабатывают перемещенные URL-адреса, во многом зависит от количества URL-адресов и скорости вашего сервера. Отправка карты сайта может помочь ускорить процесс обнаружения, и вы можете перемещать свой сайт по разделам.

https://support.google.com/webmasters/answer/34437

Перенаправление в Ruby

Итак, в вашем случае вы хотите убедиться, что используете переадресацию 301. По умолчанию redirect_to использует 302 в Ruby.

v2.3: https://api.rubyonrails.org/v2.3/classes/ActionController/Base.html#M001811

v5.2.1: https://api.rubyonrails.org/v5.2.1/classes /ActionController/Redirecting.html#method-i-redirect_to

Перенаправление происходит как заголовок 302 Found, если иное не указано с помощью параметра :status:

Обновленный код для Rails 2.3

 redirect_to("https://#{request.host}#{request.request_uri}", :status => 301) если только request.ssl?
 

Альтернативный код для Rails 3.1+

Используйте force_ssl , как указано в https://edgeguides. rubyonrails.org/configuring.html

config.force_ssl заставляет все запросы обслуживаться через HTTPS с помощью промежуточного программного обеспечения ActionDispatch::SSL и задает для config.action_mailer.default_url_options значение { протокол: ‘https’ }.

 config.force_ssl = истина
 

Проблемы с индексированием

Но временные проблемы с индексированием могут возникнуть. Чтобы помочь Google быстрее находить ваши новые HTTPS-страницы, вам следует создать карту сайта с вашими новыми HTTPS-страницами и добавить ее в Google Search Console https://search.google.com/search-console/about.

Подробнее о форматах карты сайта, которые принимает Google, см. на странице https://support.google.com/webmasters/answer/183668.

3

Rails 3 по умолчанию использует перенаправление 302 (временное). Вы можете попробовать изменить его на 301 (постоянное) перенаправление и посмотреть, понравится ли это Google:

 redirect_to("https://#{request.			

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *