(.*)$ https://www.somedomain.ru/$1 [L,R=301]

1

Содержание

Ваш ответ

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

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Как сделать редирект с http на https через htaccess

Безопасность. Сегодня это базовое требование к сайту, поэтому SSL-сертификат, гарантирующий безопасное соединение, становится не просто хорошим тоном, а обязательным критерием работы и развития любого web-ресурса. Чтобы без потерь перейти на передачу данных по защищенному протоколу, нужно настроить редирект с http на https. Какими способами это сделать, мы объясним в этой статье.

Что такое редирект

Редирект — это перенаправление с нежелательного адреса на приоритетный. Настраивая автоматическую переадресацию, вы даете серверу команду отдавать по запросу одного URL другой — тот, который считаете более предпочтительным. Как работает принудительный редирект на https?

Человек в браузере кликает по ссылке на сайт X, но эта ссылка размещена еще в беззаботную эру http-протоколов, когда о SSL-сертификатах думали только параноики, а все данные передавались по открытым каналам. С тех пор сайт X перешел на защищенное соединение, а разработчики оформили редирект.

Браузер запрашивает у сервера документ по адресу http://site-x. com, но там прописана команда: вместо устаревшего http://site-x.com отдавать браузеру надежный https://site-x.com. Все это происходит моментально, поэтому пользователь, ничего не заметив, оказывается на правильной странице с защищенным протоколом. Теперь он может вводить свои личные данные, не беспокоясь, что их по дороге перехватят злоумышленники.

Для SEO важно правильно оформлять редиректы, чтобы сайт не упал в ранжировании на поиске, а все плюшки (ссылочная масса, трафик) с исходной страницы (донора) перешли на новую (акцептора). Подробно о разных вариантах переадресации мы писали в статье Узнайте какие бывают редиректы и в каких случаях их нужно настраивать.

Когда требуется редирект на Secure-протокол

Переадресация на безопасный протокол HyperText Transfer Protocol Secure (https) устанавливается после оформления SSL-сертификата.

SSL (Secure Sockets Layer) — криптографический протокол, который гарантирует защищенное соединение между пунктами А и Б — браузером пользователя и сервером, где располагается ваш сайт. Сигнал для пользователя, что вам не безразлична его безопасность и вы подключили SSL-сертификат, — это иконка закрытого замка и адрес, начинающийся с https://. Поисковики могут также предупреждать пользователей, что сайт, на который они хотят перейти, небезопасен. Это отпугивает потенциальных посетителей.

Наличие надежного безопасного соединения критично для интернет-магазинов, банков и всех порталов, имеющих дело с персональными данными своих посетителей. SSL создает условия для конфиденциальности и минимизирует риски перехвата паролей, логинов, информации о банковских карточках и т.д. Но это не значит, что простому информационнику или корпоративному сайту-визитке не нужен SSL-протокол: это весомый фактор ранжирования, и, если вы хотите вывести свою визитку в топ, сертификат, как ни крути, оформлять придется.

Google с 2014 года отдает приоритет сайтам с защищенным протоколом, Яндекс также учитывает этот фактор в распределении мест под солнцем.

Справка Яндекса: «Яндекс старается учитывать все относящиеся к качеству сайта данные, которыми обладает. Безопасность — важный атрибут качества для пользователя, а один из признаков безопасного сайта — использование протокола HTTPS. Выбирая защищенный протокол, владелец сайта заботится о безопасности пользовательских данных, и это может быть учтено в ранжировании».

Подготовка к переезду

  1. Внутри ресурса все абсолютные ссылки с полным адресом должны быть заменены на относительные (без указания протокола). Например, http://site-x.com/page-1/ меняем на site-x.com/page-1/ или /page-1/.
  2. В файле с директивами для поисковых краулеров robots.txt нужно переделать строку Host: сюда прописываем URL домена с новым Secure-протоколом: Host: https://site-x.com. Эту директиву Яндекс отменил в 2018 году, но некоторые сеошники продолжают прописывать ее до сих пор — мало ли что. Вдруг однажды поисковики передумают.
  3. Файлы robots.txt и sitemap.xml должны быть доступны по обоим протоколам и содержать ссылки с защищенным протоколом.
  4. Адреса http://site-x.com и https://site-x. com поисковый бот считает разными ресурсами. Пока он поймет, что по ним находится одинаковый контент, и объединит обе площадки в группу зеркал, вы потеряете время и позиции в выдаче. Поэтому, получив SSL-сертификат и оформив редирект всех страниц с http на https, нужно сообщить о нововведениях в консолях вебмастеров.

Переезд в Яндекс Вебмастере

  1. Обзаведитесь SSL-сертификатом (купите, или найдите бесплатный или самоподписанный) и настройте его.
  2. Добавьте сайт в Яндекс.Вебмастер, если вы еще этого не сделали.
  3. Перейдите на незащищенную версию, в разделе «Индексирование» → «Переезд сайта» отметьте галочкой пункт «Добавить HTTPS» и сохранить изменения.
  4. В течение 1–3 недель ждите уведомление о смене главного зеркала у старой версии. После окончательного переезда в Вебмастере все URL будут отдаваться под основным адресом https.

Переезд в Google Search Console

Тут все проще: открываем консоль вебмастера, нажимаем вкладку «Добавить ресурс», в правом окне вносим новый URL с защищенным протоколом, жмем «Продолжить», право собственности подтверждается автоматически, жмем «Готово». Осталось добавить ссылку на новую карту Sitemap, и сайт переехал. В панели должны остаться оба варианта URL: http и https.

А пока суть да дело, нужно настроить редирект. Сделать это можно разными способами.

Как настроить редирект с HTTP на HTTPS через ISPmanager на хостингах

ISPmanager — одна из самых популярных российских панелей управления хостингом и сайтами. Среди прочих опций здесь доступна настройка SSL-перенаправлений. Редирект настраивается за пару шагов:

  1. Заходим в раздел «Домены» → «WWW-домены».
  2. Выбираем кандидатуру для безопасного соединения и жмем кнопку «Изменить».
  3. Ставим галку напротив пунктов «Защищенное соединение (SSL)» и «Перенаправлять HTTP-запросы в HTTPS», жмем OK.

Переадресация с HTTP на HTTPS для семерки самых ходовых хостингов

Редирект без хостинга можно оформить на стороне браузера, используя HTML и JavaScript, но работать такая переадресация будет медленнее. Оформление редиректов на стороне сервера предпочтительнее, т. к. не тормозит скорость загрузки.

Рассмотрим, как настроить редирект с http на https на разных хостингах, изменяя код в файле .htaccess. Здесь команды задаются в модуле mod_rewrite двумя параметрами:

  • RewriteCond — это условие, при котором должна выполняться директива RewriteRule.
  • RewriteRule — непосредственно директива.

Для разных хостингов параметры прописываются по-разному. Кириллические домены в зоне .рф или .рус нужно перевести в формат Punycode (например, на сервисе Punycode converter).

Найти файл .htaccess можно двумя путями, предварительно разрешив отображение скрытых файлов:

  1. Через FTP: корневая папка домена → каталог public_html → .htaccess.
  2. На консоли управления хостингом через «Диспетчер файлов».

Скачайте файл для работы, добавьте туда нужные строчки кода, чтобы установить 301 редирект с http на https, и снова загрузите обновленный .htaccess.

Если вы нигде не нашли файл .htaccess, придется его создать и заполнить. (.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Подробнее здесь: Настройка сайта для работы по HTTPS.

jino.ru

RewriteEngine On # Если этой строки нет выше
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Подробнее здесь.

Синтаксис серверного редиректа на HTTPS

Единого синтаксиса для настройки серверного редиректа с http на https-протокол через htaccess нет, поэтому иногда приходится перебирать варианты, проверяя, насколько корректно отработает каждый из них. Если на вашем хостинге нет четких указаний по прописыванию директивы, предлагаем 8 вариантов синтаксических конструкций. Какая-нибудь из них да выстрелит.

RewriteCond

RewriteRule

1

%{HTTPS} =off

(.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

2

%{SERVER_PORT} !^443$

. /название_вашей_страницы.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

 

Внимание! Не забудьте вместо фразы «название_вашей_страницы» подставить нужные данные на латинице.

Проверка редиректа

После настройки редиректа с http на https нужно проверить, как он отрабатывается в разных поисковых системах. Самая поверхностная проверка: ввести в адресную строку браузера URL с протоколом http, если редирект сработает, то откроется сайт с правильным адресом https и значком закрытого замка. Но это еще не значит, что переадресация настроена корректно, поэтому рекомендуем более вдумчивую проверку с помощью онлайн-сервиса Redirect Checker.

Здесь можно проверить, не работает ли редирект с https на http как-то криво. Если все настроено без косяков, в результатах вы увидите надпись «301 Moved Permanently», если что-то пошло не так и вместо правильного 301 отрабатывается циклический 302 редирект, сервис сообщит об ошибке. Это значит, что надо подбирать другие строчки кода, пока все не получится.

При проверке нашего сайта сервис ошибок не нашел

Для проверки переадресации в разных поисковых системах выберите нужную из выпадающего списка Sel User-Agent.

Есть и другие бесплатные сервисы для быстрой проверки редиректов:

  • Tools.otzyvmarketing.ru/proverka_redirekta — выдает отчет с расширенной информацией:
  • prcy-info.ru/index.php/redirect-checker,
  • seogift.ru/tools/proverka-perenapravlenij-sajta/ — инструмент показывает цепочки редиректов и позволяет проводить массовую проверку URL:

Отсутствие или некорректная настройка 301 редиректа с устаревшей записи домена http на обновленную https может негативно сказаться на ранжировании, т.к. поисковик будет воспринимать страницы с одинаковым контентом как дубли и понижать сайт в выдаче.

Вывод

Работа сайта по защищенному протоколу SSL — это не только забота о безопасности своего ресурса для пользователей, но и важный фактор ранжирования в поисковых системах. Корректная настройка постоянного 301 редиректа с http-адреса на безопасный протокол https позволяет избежать проблем в продвижении сайта и санкций поисковиков за дубли страниц. Пользователи также отдают предпочтение сайтам с защищенным соединением — никто не хочет утечки конфиденциальной информации.

Увидев вместо иконки закрытого замка предупреждение «Не защищено», пользователь, скорее всего, предпочтет сайт конкурента, работающего по безопасному протоколу.

Настраивать переадресацию можно разными способами, но предпочтительнее делать это на стороне сервера: или в панели управления хостинга, или, если там нет быстрой настройки, через файл .htaccess. В этом случае редирект не будет тормозить загрузку страниц.

После настройки нужно проверить корректность работы переадресации, если все сделано правильно, то в отчете появится запись о 301 редиректе, а страницы будут отдавать код 200.

Как сделать редиректы в .htaccess?

В данной статье мы рассмотрим, какие редиректы и как можно сделать при помощи . (.*)\/$ /$1 [R=301,L]

Редирект на новую страницу
Настройте перенаправление со старой страницы /old_index.php на новую /new_index.php

Redirect 301 /index.php http://yoursite.ru/index.php

Более сложные примеры правил редиректов при помощи .htaccess

RedirectMatch [status] URL-regexp URL-to-redirect

[status] — код перенаправления (30x), 
URL-regexp — информация о перенаправляемом ресурсе, в том числе, с использованием регулярных выражений
URL-to-redirect — адрес перенаправления

Пример 1. Переадресация всего сайта с сохранением строки запроса

Redirect / http://yandex.ru/yandsearch?text= 

Выполнится 302 редирект (по умолчанию) на поиск в Яндексе символов, введенных в адресную строку после названия Вашего сайта.
То есть если посетитель введет http://site.ru/page, то браузер его перенаправит на http://yandex.

ru/yandsearch?text=page

Пример 2. Переадресация конкретной страницы

Redirect 301 /hello.html http://google.ru/search?q=bye

 В случае перехода на страницу http://site.ru/hello.html выполнится 301 редирект на поиск в Гугле фразы «bye».

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

RedirectMatch (.*)\.jpg$ http://хостинг_для_картинок$1.jpg 

«Временно» (по умолчанию действует 302 редирект) переадресовываем все запросы jpeg-картинок на какой-либо бесплатный хостинг

Аналогичный код, но при помощи RewriteRule

RewriteEngine on
RewriteRule (.*)\.jpg$ http://хостинг_для_картинок$1.jpg [L,R]


Пример 4. Передресация URL, в которых содержится QUERY STRING
Если у Вас имеется страница https://site.ru/page.php?page=hello&id=5 и нужно сделать её редирект, то при помощи . page\.php$ https://site.ru/redirect_to? [R=301,L]

 

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

page.php
Во второй строке указываем строку запроса (query string), при наличии которой выполнится правило RewriteRule.
Когда 2 указанных RewriteCond совпадут, сработает RewriteRule, в котором указан редирект страницы page.php на URL https://site.ru/redirect_to? с кодом 301
Знак «?» в конце URL указан для того, чтобы строка запроса не передавалась на URL редиректа. Если передача необходима, то следует удалить знак «?» из URL.

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

301 редирект сниппеты для .htaccess / likes 30 / блог студии Клондайк!

Для большинства проектов нашей студии приходится использовать SEO редиректы, поскольку движки сайтов не в состояние учесть некоторые моменты, или же требуется действительно исправить существующую ситуацию с урлами.

Как показала практика даже программисты плохо понимают суть работы 301 редиректа, по сему пришлось написать стандартны снипет для .htaccess

Я только вкратце опишу их, поскольку описал каждую строчку кода. Задача которые решает данный сниппет достаточно простые, но они собраны и отдебажены по мере возможности.

Данный конфиг позволяет решить следующие задачи:

  • Активация канонических директив
  • Активация рекомендованных директив «Битрикс монитор качества»
  • Установить основное зеркало сайта с www сохраняя протокол http или https
  • Установка основного зеркала сайта без www сохраняя http или https
  • Перенаправление HTTP > HTTPS
  • ПеренаправлениеHTTPS > HTTP
  • Удалить любое количество «/» стоящих рядом; site.ru////catalog//item > site.ru/catalog/item
  • Удалять «/» в конце URL если это файл
  • Добавлять «/» в конце URL если его там нет и это не файл. (.*)$ tovar-%1 [R=301,L] # То сделать перенаправление

    Обратите внимание что используется % а не $

    Перенаправление HTTP на HTTPS в Apache

    HTTP-сервер Apache является одним из самых популярных веб-серверов в мире. Это кросс-платформенный HTTP-сервер с открытым исходным кодом, который обслуживает большой процент веб-сайтов в Интернете. Apache предоставляет множество мощных функций, которые можно расширить с помощью дополнительных модулей.

    Если вы являетесь владельцем сайта или системным администратором, скорее всего, вы имеете дело с Apache на регулярной основе. Одна из наиболее распространенных задач, которые вы, вероятно, будете выполнять, — это перенаправление трафика HTTP на защищенную (HTTPS) версию вашего сайта.

    В отличие от HTTP, где запросы и ответы отправляются и возвращаются в виде открытого текста, HTTPS использует TLS/SSL для шифрования связи между клиентом и сервером.

    Есть много преимуществ использования HTTPS над HTTP, таких как:

    • Все данные зашифрованы в обоих направлениях. В результате конфиденциальная информация не может быть прочитана в случае перехвата.
    • Google Chrome и все другие популярные браузеры будут помечать ваш сайт как безопасный.
    • HTTPS позволяет использовать протокол HTTP/2, что значительно повышает производительность сайта.
    • Google предпочитает сайты HTTPS. Ваш сайт будет оцениваться лучше, если будет обслуживаться через HTTPS.

    В этой статье рассказывается, как перенаправить HTTP-трафик на HTTPS в Apache.

    Есть несколько способов перенаправить на HTTPS в Apache. Если у вас есть root-доступ к серверу Linux, на котором работает Apache, предпочтительным способом является настройка перенаправления в файле конфигурации виртуального хоста домена. В противном случае вы можете настроить перенаправление в файле .htaccess домена.

    Некоторые панели управления, такие как cPanel, позволяют принудительно перенаправлять HTTPS несколькими щелчками мыши.

     

    Перенаправить HTTP на HTTPS с помощью виртуального хоста

    Apache Virtual Hosts определяет настройки одного или нескольких доменов, размещенных на сервере.  В директиве виртуального хоста вы можете указать корневой каталог документа сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL, настроить перенаправление и многое другое.

    Обычно, когда сертификат SSL установлен в домене, у вас будет две директивы виртуального хоста для этого домена. Первый — для HTTP-версии сайта на порту 80, а второй — для HTTPS-версии на порту 443.

    В дистрибутивах Red-Hat, таких как CentOS и Fedora, файлы виртуальных хостов хранятся в /etc/httpd/conf.d. В Debian и его производных, таких как Ubuntu, файлы хранятся в каталоге /etc/apache2/sites-available.

    Чтобы перенаправить веб-сайт на HTTPS, используйте директиву Redirect, как показано в примере ниже:

    <VirtualHost *:80> 
      ServerName example.ru
      ServerAlias www.example.ru
    
      Redirect permanent / https://example.ru/
    </VirtualHost>
    
    <VirtualHost *:443>
      ServerName example. ru
      ServerAlias www.example.ru
    
      Protocols h3 http:/1.1
    
      # SSL Configuration
    
      # Other Apache Configuration
    
    </VirtualHost>
    

     

    Давайте объясним код. Мы используем две директивы виртуального хоста, одну для HTTP и одну для HTTPS-версии сайта.

    • VirtualHost *:80 — Сервер Apache прослушивает входящие соединения через порт 80 (HTTP) для указанного домена.
    • VirtualHost *:443 — Сервер Apache прослушивает входящие соединения через порт 443 (HTTPS) для указанного домена.

    Директивы ServerName и ServerAlias с указанием доменных имен виртуального хоста. Убедитесь, что вы заменили его своим доменным именем.

    Выделенная строка Redirect permanent / https://example.ru/ внутри виртуального хоста HTTP перенаправляет трафик на HTTPS-версию сайта.

    Как правило, вы также хотите перенаправить HTTPS www-версию сайта на не-www или наоборот. Вот пример конфигурации:

    <VirtualHost *:80> 
      ServerName example. ru
      ServerAlias www.example.ru
    
      Redirect permanent / https://example.ru/
    </VirtualHost>
    
    <VirtualHost *:443>
      ServerName example.ru
      ServerAlias www.example.ru
    
      Protocols h3 http:/1.1
    
      <If "%{HTTP_HOST} == 'www.example.ru'">
        Redirect permanent / https://example.ru/
      </If>
    
      # Конфигурации SSL
    
      # Другие Конфигурация Apache
    
    </VirtualHost>
    

    Код внутри виртуального хоста HTTPS (выделенные строки) проверяет, содержит ли заголовок запроса домен www и перенаправляет его на версию без www.

    Всякий раз, когда вы вносите изменения в файлы конфигурации, вам нужно перезапустить или перезагрузить службу Apache, чтобы изменения вступили в силу:

     

    Перенаправить HTTP на HTTPS, используя .htaccess

    Файл конфигурации .htaccess для каждого каталога для веб-сервера Apache. Этот файл можно использовать для определения того, как Apache обслуживает файлы из каталога, в котором находится файл, а также для включения/отключения дополнительных функций. (.*)$ https://example.ru/$1 [L,R=301]

     

    При редактировании файла .htaccess вам не нужно перезагружать сервер, потому что Apache читает файл при каждом запросе.

     

    Вывод

    В Apache предпочтительным способом перенаправления HTTP на HTTPS является настройка перенаправления 301 на виртуальном хосте домена.

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Перенаправление Apache и Nginx | FirstVDS

    Статья давно не обновлялась, поэтому информация могла устареть.

    Содержание

    • 1 Apache
      • 1.1 Подключения модуля mod_rewrite
      • 1.2 Правила Redirect
        • 1.2.1 Redirect или RedirectPermanent
        • 1.2.2 RedirectMatch
        • 1.2.3 RewriteRule
        • 1.2.4 Редирект с одного сайта на другой
          • 1.2.4.1 Редирект с www на без www
          • 1. 2.4.2 Редирект с без www на www
          • 1.2.4.3 Перенаправление домена с https на http
          • 1.2.4.4 Перенаправление домена с http на https
    • 2 Nginx
      • 2.1 Редирект 301 с www.domain.com на domain.com
      • 2.2 Редирект 301 с domain.com на www.domain.com
      • 2.3 Редирект 301 с https на http
      • 2.4 Редирект 301 с http на https

    Подключения модуля mod_rewrite

    Для включения перенаправления средствами Apache, достаточно чтобы модуль mod_rewrite.so был загружен в Apache.

    LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
    

    Для того ,чтобы директивы mod_rewrite можно было использовать в .htaccess, надо в конфигурационном файле Apache, в соответствующем разделе «<Directory /путь/до/директории>» прописать:

    AllowOverride all
    

    После внесения изменений в конфигурационный файл Apache, для вступления в силу этих изменений, нужно перезапустить веб сервер:

    apachectl restart
    

    или

    apache2ctl restart
    

    В . htaccess для работы перенаправления нужно указать следующую директиву:

    RewriteEngine On
    

    Правила Redirect

    Эти директивы вы можете прописывать как в конфиге Apache для нужного virtualhost, так в файле .htaccess.

    Redirect или RedirectPermanent

    Главный недостаток данных правил заключается в том, что для каждого адреса необходимо прописывать новое правило. Если необходимо сделать несколько редиректов, то каждый новый редирект пишется с новой строки.

    Если нужно сделать несколько редиректов, то каждый новый редирект нужно написать с новой строки.

    Redirect 301 /old-page.html http://new-domain.ru/new-page.html
    

    или

    Redirect permanent /old-page.html http://new-domain.ru/new-page.html
    

    Для перенаправления всех запросов на другой сайт вы можете использовать следующую конструкцию:

    Redirect 301 / http://new-domain.ru/
    

    или

    Redirect permanent / http://new-domain.ru/
    

    RedirectMatch

    Этот редирект отличается тем, что в нем можно использовать регулярное выражение. https://www.domain.com$request_uri? permanent; }

    После внесения изменений в конфигурационный файл Nginx, для вступления в силу этих изменений, нужно его перезапустить так:

    service nginx restart
    
    /(.*):NOSSL$ http://www.example.com/$1 [R=301,L]

    Попытка 2

     RewriteEngine вкл.
    RewriteCond %{HTTPS} на
    Правило перезаписи (.*) http://%{HTTP_HOST}%{REQUEST_URI}
     

    Обе описанные выше попытки не удались. Какие-либо предложения?

    • apache
    • .htaccess
    • http
    • https

    Попытка 2 была близка к идеальной. Просто немного измените его:

     RewriteEngine On
    RewriteCond %{HTTPS} на
    Правило перезаписи (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
     

    ОБНОВЛЕНИЕ:

    Приведенное выше решение работает с технической точки зрения. НО :

    Уже несколько лет пользователь будет получать огромное предупреждение о том, что соединение не является частным. Этого и следовало ожидать: ни один из современных браузеров не будет молча переключаться с зашифрованного соединения на незашифрованное по понятным причинам. .. Вы не можете обойти такое поведение стандартных браузеров. Однако это не имеет ничего общего с самим перенаправлением. Так сегодня работает сеть, как пользователи защищены от преступных намерений.

    17

    Однако, если у вашего веб-сайта нет сертификата безопасности, он находится в среде общего хостинга, и вы не хотите получать «предупреждение» при запросе вашего веб-сайта через https, вы не можете перенаправить его с помощью htaccess . Причина в том, что предупреждающее сообщение срабатывает еще до того, как запрос будет передан в файл htaccess, поэтому вам нужно исправить это на сервере. Перейдите в /etc/httpd/conf.d/ssl.conf и закомментируйте часть о виртуальном сервере 443. Но есть вероятность, что ваш хостинг-провайдер не даст вам такого большого контроля. Таким образом, вам придется либо перейти на другой хост, либо купить SSL, чтобы предупреждение не срабатывало до того, как ваш htaccess получит возможность перенаправить. 9(.*)$ http://example.com/$1 [NC,L,R]

    Перенаправить любой запрос (https://example.com/foo) с по http://example.com/foo .

    • $1 является частью регулярного выражения в шаблоне RewriteRule, он содержит любое значение, которое было захвачено в (.+) , в этом случае он захватывает полный request_uri после доменного имени.

    • [NC,L,R] — это флаги, NC делает регистр uri чувствительным, в запросе можно использовать как прописные, так и строчные буквы.

    Флаг L указывает серверу прекратить обработку других правил, если текущее правило совпало. Важно использовать флаг L, чтобы избежать конфликта правил, когда в блоке содержится более одного правила.

    Флаг R используется для внешнего перенаправления.

     RewriteEngine включен
    RewriteCond %{SERVER_PORT} 443
    Правило перезаписи (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
     

    0

    Разница между http и https заключается в том, что HTTPS-запросы отправляются через соединение с шифрованием SSL. Соединение с шифрованием SSL должно быть установлено между браузером и сервером до того, как браузер отправит HTTP-запрос.

    Запросы HTTPS на самом деле являются запросами HTTP, которые отправляются через зашифрованное соединение SSL. Если сервер откажется установить зашифрованное соединение ssl, у браузера не будет соединения для отправки запроса. Браузер и сервер не смогут общаться друг с другом. Браузер не сможет отправить URL-адрес, к которому он хочет получить доступ, и сервер не сможет ответить перенаправлением на другой URL-адрес.

    Так что это невозможно. Если вы хотите отвечать на https-ссылки, вам нужен ssl-сертификат.

     RewriteCond %{HTTP:X-Forwarded-Proto} =https
     

    3

    Ваш код правильный. Просто поместите их внутрь

    Пример:

     
      SSLEnable
      RewriteEngine включен
      RewriteCond %{HTTPS} на
      Правило перезаписи (.*) http://%{HTTP_HOST}%{REQUEST_URI}
    
     

    http на https через .

    htaccess

    спросил

    Изменено 7 месяцев назад

    Просмотрено 191k раз

    Я просмотрел существующие вопросы, но не нашел ничего, что бы мне подошло.

    В настоящее время я использую сайт с сертификатом Secure SSL. Доступ к нему можно получить по адресу https://www.example.co.uk. Проблема в том, что сайт также доступен по адресу http://www.example.co.uk — я не хочу, чтобы это было возможно. Мне нужно, чтобы он перенаправлял с http на https. 9(.*)$ https://example.co.uk/$1 [L,R=301]

    Это прекрасно работает, когда пользователь вводит example.co.uk в свою адресную строку, но мне также нужно добавить какое-то условное выражение, чтобы, если пользователь вводит «www.example.co.uk» или «http: //www.example.co.uk».

    Я пытался использовать что-то вроде [ИЛИ], но это приводило к ошибкам сервера.

    Приветствуются любые помощь и предложения.

    Удачи.

    • http
    • .htaccess
    • перенаправление 9(.*)$ https://www.example.com/$1 [П, Л]

      измените example.com на домен вашего веб-сайта

      Учебное пособие по перенаправлению URL-адресов можно найти здесь — Перенаправление без www на www и с HTTP на HTTPS с использованием файла .htaccess

      0

      Попробуйте это, я использовал его, и он отлично работает

       Опции +FollowSymLinks
      RewriteEngine включен
      RewriteCond %{HTTPS} выкл.
      Правило перезаписи (.*) https://%{HTTP_HOST}%{REQUEST_URI}
       

      Попробуйте это:

       RewriteEngine On
      RewriteCond %{HTTPS} выкл.
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
       9(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       

      Спасибо https://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-dobavit-redirekt/redirekt-s-http-na-https (на русском)

      Пробую весь приведенный выше код, но любой код не работает для моего веб-сайта. (.*)$ https://www.example.com/$1 [L,R=301] 9https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

      Есть лучшие и более безопасные способы убедиться, что весь ваш трафик проходит через https . Например, настроить два виртуальных хоста и перенаправить весь трафик с вашего http на ваш https хост. Подробнее об этом читайте в этом ответе здесь, на security.stackexchange.com .

      При настройке виртуального хоста для перенаправления вы можете отправлять статус 301 (постоянное перенаправление), чтобы браузер понимал, что все последующие запросы должны быть отправлены на https-сервер, на который он был перенаправлен. Следовательно, после первого ответа перенаправления дальнейшие http-запросы выполняться не будут. 9(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

      Приведенный ниже код при добавлении в файл .htaccess автоматически перенаправит любой трафик, предназначенный для http:, на https:

         index.php [L]
      
       9(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
       

      — это код, который я использую.

      Принудительно использовать HTTPS с файлом .htaccess — Центр поддержки хостинга InMotion

      Принудительно использовать HTTPS-соединения с .htaccess, чтобы убедиться, что каждое соединение является безопасным. Посетители вашего веб-сайта должны получать доступ к вашему сайту, используя соединение с шифрованием SSL для дополнительной безопасности, доступности или соответствия требованиям PCI. Если вы не знакомы с SSL, наша статья «Что такое SSL и почему это важно?» поможет вам ускориться. Простого наличия SSL недостаточно, если кто-то может случайно получить доступ к вашему сайту через незащищенное соединение. Прочтите ниже, чтобы узнать, как принудительно установить HTTPS-подключения на вашем сайте.

      • Зачем принудительно использовать HTTPS для безопасного соединения?
      • Принудительное использование HTTPS с помощью .htaccess
        • Перенаправление всего веб-трафика
        • Перенаправление только одного указанного домена
        • Перенаправление указанной папки

      Зачем принудительно использовать HTTPS для безопасного соединения?

      Хостинг InMotion включает бесплатный SSL-сертификат для всех планов хостинга бизнес-класса. Этот SSL легко активировать в Панели управления учетной записью (AMP) в разделе Моя учетная запись > Управление бесплатным SSL 9.0058 .

      Мы настоятельно рекомендуем, чтобы все посетители вашего сайта получали к нему доступ через защищенное соединение. На данный момент подавляющее большинство сайтов работают через SSL, и поисковые системы могут оштрафовать вас, если вы не используете SSL. Что еще более важно, Google теперь, похоже, отдает приоритет результатам поиска с безопасным соединением, а не без него.

      Заставить посетителей использовать SSL можно с помощью различных плагинов или вручную отредактировав файл .htaccess с помощью mod_rewrite.

      Принудительное использование HTTPS с помощью .htaccess

      Файл . htaccess — это файл конфигурации, используемый на серверах Apache. Это «точечный файл», так как точка в начале имени файла означает, что он по умолчанию скрыт от просмотра. Если вы не видите его, убедитесь, что вы можете просматривать скрытые файлы в файловом менеджере cPanel.

      ПРИМЕЧАНИЕ. Для сайтов WordPress рассмотрите вместо этого подключаемый модуль SSL, такой как Really Simple SSL .

      Перенаправить весь веб-трафик 9/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

      Перенаправить только один указанный домен

      Чтобы заставить определенный домен использовать HTTPS, используйте следующие строки кода в файле .htaccess в корневой папке вашего веб-сайта:

      ПРЕДУПРЕЖДЕНИЕ: Если у вас уже есть код в вашем .htaccess, добавьте его выше, где уже есть правила с похожим начальным префиксом.

       RewriteCond %{REQUEST_URI} !^/[0-9(. *)$ https://www.example.com/$1 [R=301,L] 

      ПРИМЕЧАНИЕ. Обязательно замените example.com доменным именем, которое вы пытаетесь перевести на https . Кроме того, вам необходимо заменить www.example.com на ваше фактическое доменное имя.

      Перенаправить указанную папку

      Если вы хотите принудительно использовать SSL для конкретной папки , вставьте приведенный ниже код в файл .htaccess, размещенный в этой конкретной папке: , добавьте это выше, где уже есть правила с похожим начальным префиксом. 9(.*)$ https://www.example.com/folder/$1 [R=301,L]

      ПРИМЕЧАНИЕ. Убедитесь, что вы изменили ссылку папки на фактическое имя папки. Затем обязательно замените www.example.com/folder своим фактическим именем домена и папкой, для которой вы хотите принудительно включить SSL.

      Если вы настраиваете SSL для сайта WordPress, обязательно ознакомьтесь с нашим руководством по настройке SSL на сайте WordPress. Если вам нужна дополнительная информация о файле .htaccess, взгляните на официальную документацию Apache .htaccess. Если ваш браузер не указывает, что у вас есть SSL, даже после его настройки, обязательно ознакомьтесь с нашим руководством по устранению неполадок с блокировкой SSL.

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

      Как перенаправить HTTP на HTTPS с помощью .htaccess? (обновление 2022 г.)

      Это полное пошаговое руководство по перенаправлению http на https с помощью .htaccess.

      Наличие HTTPS сейчас имеет решающее значение. Это символ доверия. Google Chrome, Firefox и другие популярные браузеры отображают предупреждение, когда посетитель загружает веб-сайт, работающий по протоколу HTTP. Они помечают их как небезопасные сайты.

      Для магазина электронной коммерции гораздо важнее загружать сайт через безопасный сокет.

      В этом посте я расскажу вам о простой и понятной процедуре принудительного перенаправления HTTP на HTTPS с помощью .htaccess.

      Перенаправление с HTTP на HTTPS с помощью .htaccess
      1. Редактирование файла .htaccess с помощью FTP или cPanel
      2. Перенаправление с HTTP на HTTPS в Apache0435

        Редактировать файл .htaccess с помощью FTP или cPanel

        Не беспокойтесь, если вы не знаете, как получить доступ к файлу .htaccess, вы можете воспользоваться помощью своего разработчика или просто следовать инструкциям, сначала я расскажу вам, как чтобы отредактировать его.

        • Метод №1: Отредактируйте файл .htaccess на своем компьютере локально. Загрузите его на сервер через FTP.
        • Способ №2: Откройте программу FTP и используйте функцию редактирования для удаленного редактирования файла.
        • Метод №3 : Перейдите в cPanel и откройте файловый менеджер, чтобы отредактировать файл .htaccess. (Я подробно описал этот метод)

        Редактирование .htaccess в файловом менеджере cPanel

        Примечание : сделайте резервную копию своего сайта, прежде чем возиться с файловым менеджером cPanel.

        Как отредактировать файл .htaccess в диспетчере файлов cPanel:

        1. Откройте свою учетную запись cPanel
        2. Нажмите «Диспетчер файлов» на вкладке «Файлы»
        3. Найдите «Настройки» в правом верхнем углу страницы, щелкните по нему
        4. Нажмите на корень документа для (имя домена) и установите флажок Показать скрытые файлы (изображение ниже)
        5. Сохранить для обновления файлового менеджера
        6. Найдите файл public_html и нажмите на него
        7. На следующей странице вы увидите найдите файл .htaccess
        8. Нажмите один раз на файл .htachess, а затем нажмите «Изменить» на верхней панели
        9. Появится окно с предупреждением, но нажмите «Изменить»
        10. открыть
        11. Изменить код
        12. Сохраните файл

        После того, как все сделано, проверьте сайт, не вносились ли изменения. Если что-то пойдет не так, выполните ту же процедуру, чтобы найти файл .htaccess и восстановить старую версию.

        Теперь, когда вы знаете, как редактировать файл .htaccess, давайте перенаправим HTTP на HTTPS, используя метод редактирования файла .htaccess.

        Перенаправление HTTP на HTTPS в Apache

        1. Перенаправление всего веб-трафика

        Добавьте этот код под существующим кодом в файл .htaccess. 9(.*)$ https://www.yourdomain.com/folder/$1 [R,L]

        Примечание:  Вместо вашего домена в коде добавьте свое доменное имя. Точно так же замените /folder на имя вашей папки.

        Перенаправление с HTTP на HTTPS в NGINX
        1. Вход на веб-сервер NGINX
        2. Добавить return 301 https://$server_name$request_uri в директиве сервера.
        3. Сохраните файл.
        4. Последний шаг — перезапустить веб-сервер NGINX.

        Примечание:  Создайте резервную копию файла nginx. conf или default.conf

        Перенаправление HTTP на HTTPS в Cloudflare

        Если вы используете Cloudflare, вы можете легко выполнить перенаправление HTTP.

        • Войдите в Cloudflare
        • Выберите свой веб-сайт
        • Перейдите на вкладку Crypto
        • Прокрутите вниз до раздела «Всегда использовать HTTPS»
        • Убедитесь, что он включен

        Что такое SSL?

        SSL или Secure Sockets Layer — это стандартный протокол безопасности, который шифрует соединение между веб-браузером и сервером.

        Он защищает конфиденциальную информацию, такую ​​как данные кредитной карты, данные для входа и другую информацию пользователя.

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

        Эти ключи предоставляются сертификатом SSL.

        Следовательно, данные защищены по протоколу HTTPS.

        Зачем вам нужен SSL для вашего сайта?

        Безопасные транзакции: Если вы что-то продаете в своем блоге, транзакции должны выполняться по протоколу HTTPS. Или существует большой риск кражи информации о кредитной карте и различных других мошеннических действий при совершении покупок.

        Повышение SEO : Наличие SSL на сайте повышает SEO. Google хочет, чтобы Интернет был безопасным местом, поэтому он отдает приоритет безопасным сайтам.

        Соответствие PCI : индустрия платежных карт установила правила для сайта, которые позволяют проводить онлайн-транзакции на сайте. Если вы хотите включить кредитную карту в своем магазине электронной коммерции, вы должны соответствовать стандарту PCI. Или придется заплатить солидный штраф.

        Индикатор доверия браузера HTTPS : Браузер отображает зеленую полосу для сайта, который загружается по HTTPS. Это повышает доверие к сайту.

        Подробнее: HTTPS против HTTP

        Подведение итогов

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

        В этой статье я рассказал вам, как принудительно перенаправить HTTP на HTTPS с помощью файла htaccess.

        Если возникнут проблемы на каких-то шагах, пишите в комментариях.

        Как использовать .htaccess для перенаправления на https в cPanel — Сертификаты SSL

        Как использовать .htaccess для перенаправления на https в cPanel

        • Типы редиректов
        • Установка правила перезаписи в .htaccess: варианты использования
          • Включение перенаправления HTTPS для всех сайтов в учетной записи cPanel
          • Отключение приложения правила перезаписи для определенного сайта
          • Перенаправление одного сайта с http:// на https:// или https://www
          • Принудительное использование «https://example.com» или «https://www.example.com»
          • Принудительное использование «http://» или «http://www.»
          • Перенаправление на/с поддомена
          • Перенаправление с http:// на https:// или https://www в режиме гибкого SSL CloudFlare.
          • Включение HTTPS для определенной подпапки
          • Принудительное использование HTTPS для определенной страницы
          • Настройка перенаправления для определенного имени файла вне зависимости от его местоположения
          • Частичный редирект на https://
          • Как указать код состояния перенаправления в правиле перезаписи

        После установки SSL-сертификата и доступа к сайту через https:// , вы можете сделать его доступным через https:// по умолчанию. Другими словами, набрав domain.com в веб-браузере, пользователь должен быть перенаправлен на https://domain.com для безопасного доступа к сайту.

        В этой статье мы рассмотрим некоторые из основных типов HTTPS-перенаправления и покажем, как использовать .htaccess для принудительного HTTPS в Cpanel.

        Сам файл можно найти, если зайти в cPanel >> Файловый менеджер . Там найдите корень документа вашего сайта. Для основных доменов cPanel папка обычно называется «public_html». Если веб-сайт является надстройкой, вы можете найти его корень документа в разделе Дополнительные домены .

        Когда вы найдете папку, файл .htaccess может уже быть там. Чтобы еще раз проверить это, нажмите Настройки в правом верхнем углу и отметьте Показать скрытые файлы (dotfiles) .

        Если файл не появился, смело создайте его, нажав +Файл . Не забудьте назвать файл .htaccess , начиная с точки.

        Чтобы открыть файл, щелкните его правой кнопкой мыши, затем выберите Редактировать . В следующем всплывающем окне также нажмите Edit .

        Типы перенаправлений

        Когда дело доходит до настройки правила перезаписи, полезно знать, что существует постоянный тип перенаправления и временный. Каждый тип обрабатывается поисковыми системами и веб-браузерами по-разному и имеет свой код состояния, который можно явно указать в правиле перезаписи:

        • Код состояния 301 «Перемещен навсегда» (постоянная переадресация) означает, что запрошенный ресурс перемещен в новое место навсегда, поэтому поисковые системы не должны учитывать ссылки на предыдущее место и индексировать новое. Веб-браузеры, в свою очередь, сохранят новый URL-адрес в кеше, поэтому отдают ему приоритет над первоначальным URL-адресом.

        • Код состояния 302 «Временно перемещен» (временное перенаправление) означает, что перенаправление установлено на ограниченный период времени. Поисковые системы в этом случае должны учитывать оба местоположения как равные, а исходное останется действительным. Соответственно, браузеры не будут кэшировать новый URL-адрес, и перенаправление будет выполняться каждый раз, когда запрашивается первоначальный URL-адрес.

        ПРИМЕЧАНИЕ . Включение переадресации 302 на длительный период времени может значительно снизить рейтинг веб-сайта в результатах поиска. Что касается перенаправления HTTP-HTTPS, все запросы к сайту распределяются между http://domain.com и https://domain.com, поскольку оба они индексируются поисковыми системами отдельно. Поэтому в большинстве случаев код состояния 301 предпочтительнее для перенаправлений HTTP-HTTPS.

        В следующем разделе мы опишем, где именно должен быть указан код состояния.

        Настройка перезаписи .htaccess: варианты использования

        ПРИМЕЧАНИЕ : Указанные ниже директивы работают по своему собственному синтаксису. Изменение любого символа или символа может привести к неправильной работе или сбою правила перезаписи. Чтобы все было ясно, мы выделили части, которые можно изменить, красным цветом (в основном там, где должно быть размещено определенное доменное имя).

        Давайте рассмотрим наиболее распространенные способы настройки перенаправления с HTTP на HTTPS.

        Включение перенаправления HTTPS в Cpanel для всех сайтов

        ПРИМЕЧАНИЕ . Если у вас уже есть код в файле .htaccess, добавьте его над правилами с таким же начальным префиксом.

        Чтобы перенаправить все сайты в учетной записи cPanel, необходимо добавить один из следующих блоков в файл .htaccess в домашнем каталоге вашей cPanel (‘/home/cpanelusername/’): 9/?(. *) https://%{SERVER_NAME}/$1 [R,L]

        Этот блок включает возможности перезаписи, проверяет, что исходный запрос еще не содержит https://, и перезаписывает весь запрошенный URL-адрес. , заменив http:// на https:// (например, http://domain.com/subfolder/index.php будет заменено на https://domain.com/subfolder/index.php ).

        b)
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

        Этот блок работает так же, как и предыдущий, только с помощью другого синтаксиса. Можно использовать любое из вышеупомянутых правил перезаписи, чтобы перенаправить все сайты в учетной записи cPanel.

        Отключение применения правила перезаписи для определенного сайта

        Если вам нужно настроить перенаправление для всех сайтов в учетной записи cPanel, кроме example.com, указанный ниже блок кода можно добавить в .htaccess в домашнем каталоге:

        9/?(.*) https://%{ИМЯ_СЕРВЕРА}/$1 [П, Л]

        Первое условие в блоке сопоставляет запрошенный URL-адрес с доменным именем, включенным в условное значение (тот, который НЕ должен перенаправляться), и останавливает переписывание, если они совпадают. example\.com$ [ИЛИ] 9www\.example\.com$
        RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

        .htaccess Force ‘https://’ или ‘https://www

        а) Перенаправляет все запросы http:// и https:// на одну и ту же страницу, но с https://example.com (также перенаправляет с https://www.example.com на https://example.com)


        Перезапись двигателя на 9www\.example\.com$
        RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]

        b) Перенаправляет все запросы http:// и https:// на одну и ту же страницу, но с https://www (также перенаправляет https://example.com на https://www.example.com)


        Перезапись двигателя на
        RewriteBase /

        RewriteCond %{HTTPS} !=on 9пример\.com$
        RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

        .htaccess Force ‘http://’ или ‘http://www.

        а) Перенаправляет всех посетителей сайта на одну и ту же страницу, но с принудительной переадресацией http:// + http://www.example. перейти на http://example.com


        Перезапись двигателя на
        RewriteBase / 9www\.example\.com$
        RewriteRule .* http://example.com%{REQUEST_URI} [R=301,L]

        б) Перенаправляет всех посетителей сайта на одну и ту же страницу, но с принудительным http://www + перенаправляет с http://example.com на http://www.example.com


        Перезапись двигателя на
        RewriteBase /

        RewriteCond %{HTTPS} =на 9пример\.com$
        RewriteRule .* http://www.example.com%{REQUEST_URI} [R=301,L]

        Перенаправление на/с поддомена

        а) Перенаправление с example.com или www.example.com (как http://, так и https://) на определенный поддомен


        Перезапись двигателя на
        RewriteBase /

        RewriteCond %{HTTP_HOST} ^example\. com$ [ИЛИ] 9поддомен\.example\.com$
        RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

        Перенаправление с http:// на https:// или https://www в режиме CloudFlare Flexible SSL

        а) Базовое перенаправление с http:// на https://, но этот блок следует использовать вместе с CloudFlare Flexible Режим SSL


        Перезапись двигателя на 9www\.example\.com$
        RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]

        б) То же правило, но переадресация на https://www


        Перезапись двигателя на
        RewriteBase /

        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP:X-Forwarded-Proto} !https 9www\.example\.com$
        RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

        Включение HTTPS для определенной подпапки

        Иногда может потребоваться перенаправить определенную часть веб-сайта, расположенную в определенной подпапке, оставив остальную часть сайта без изменений. Для этого вставьте в .htaccess следующий блок:

        Перезапись двигателя на
        RewriteCond %{HTTPS} !=on 9тест/пример\.html$ https://www.example.com/test/example.html [R,L]

        (в приведенном выше примере «тест» — это рассматриваемая подпапка)

        Настройка перенаправления для определенного имени файла, независимо от местоположения

        Если у вас есть несколько страниц с одинаковым именем, расположенных в разных подпапках ( пример index.html используется ниже), вы можете включить перенаправление HTTPS для всех сразу. Сделайте это, применив набор правил, как показано ниже:

        Перезаписать двигатель на
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_FILENAME} index.html
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

        Только страницы с именами файлов, которые соответствуют значению параметра {REQUEST_FILENAME}, будут перенаправлены на HTTPS.

        Частичная переадресация на https://

        а) Перенаправляет весь сайт на https:// кроме одной страницы (example. example\.com$ 9/some_https_page\.html$
        RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]

        Как указать код состояния перенаправления в правиле перезаписи

        Каждое правило перезаписи заканчивается так называемыми «флагами перезаписи» (указанными в квадратных скобках, например [R,L]). Эти флаги помогают контролировать правильность выполнения процесса перезаписи. Чтобы установить редирект с кодом состояния 301 (постоянный), вам нужно будет присвоить этот код R-флагу в скобках, добавив «= 301».


        ПРИМЕЧАНИЕ : Если для R-флага не указано значение, по умолчанию будет выполнено перенаправление с кодом состояния 302.

        После завершения с помощью этого инструмента можно проверить функционирование перенаправления и его код состояния.

        Перенаправить HTTP на HTTPS | WP-Mix

        Помимо канонизации www, вы также можете канонизировать протокол HTTP, перенаправляя HTTP на HTTPS (или наоборот) с помощью Apache/. htaccess. Ниже вы найдете несколько способов заставить SSL / TLS для всех запросов URI . Это особенно полезно для сайтов с существующими ссылками, указывающими на незашифрованный http:// URL s. Принудительное использование SSL / HTTPS помогает устранить дублированный контент и сохранить драгоценный вес ссылок на ваш канонический набор страниц.

        Требования

        Во-первых, на сервере Apache должен быть установлен сертификат SSL . Методы, представленные в этом руководстве, предполагают, что SSL работает правильно. Если вы сомневаетесь в этом, обратитесь за помощью к своему веб-хостингу. Затем, когда вы настроили SSL, вы можете использовать любой из следующих методов, чтобы убедиться, что все запросы обслуживаются через 9Протокол 1274 HTTPS (или HTTP , если предпочтительнее).

        Кроме того, вам потребуется доступ к общедоступному корневому файлу .htaccess вашего сайта (или вы можете использовать файл конфигурации Apache), чтобы добавить необходимые правила Apache/.htaccess.

        Вероятно, также неплохо перевести ваш сайт в режим обслуживания, если это необходимо, во время внесения изменений в .htaccess. Таким образом, поисковые системы не заметят никаких прерывистых или неожиданных сценариев.

        Напоминание: всегда делайте резервную копию ваших .htaccess , прежде чем вносить какие-либо изменения!

        .htaccess перенаправить HTTP на HTTPS (или наоборот)

        Ниже вы найдете четыре метода перенаправления всех запросов на протокол HTTPS . Первый метод можно использовать для тестирования, чтобы дать вам представление о текущей обработке вашим сервером запросов URI .

        После тестирования вы можете использовать любой из трех других методов, чтобы убедиться, что все запросы всегда обслуживаются через SSL/HTTPS (или обычный HTTP, если это предпочтительнее). Все три метода перенаправления служат одной и той же цели, поэтому не стесняйтесь использовать тот, который лучше всего подходит для конфигурации вашего сайта. 9на $ [NC] RewriteCond %{QUERY_STRING} !https-is-on [NC] RewriteRule (.*) /?https-is-on [R=301,L]

        Этот метод проверяет, включен ли HTTPS на вашем сервере. Если это так, то он перенаправит запрос на вашу домашнюю страницу с добавленной строкой запроса https-is-on . Вы можете выполнить обратную проверку, изменив на на на . После тестирования с помощью этого кода удалите его и выберите один из следующих трех способов обеспечения SSL для всех запросов.

        Метод 2: перенаправить все на HTTP или HTTPS

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

         
        RewriteEngine включен
        RewriteCond %{HTTPS} выкл.
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
         

        Как это работает? Вот построчная разбивка:

        • Проверить, доступен ли модуль перезаписи Apache
        • Если да, то убедитесь, что модуль перезаписи включен
        • Проверить, отключен ли HTTPS (SSL) для запроса
        • Если да, то запрос перенаправляется на HTTPS
        • Закрыть проверку модуля перезаписи

        Примечание: , чтобы изменить этот метод вместо перенаправления с HTTPS на HTTP, измените RewriteCond на на и замените https на http в RewriteRule . Кроме того, если HTTP_HOST не работает должным образом, попробуйте вместо этого использовать SERVER_NAME .

        Способ 3: перенаправить все на HTTP или HTTPS

        Этот метод аналогичен способу №2, только здесь мы жестко запрограммируем протокол перенаправления и доменное имя для большего контроля и настройки. Поэтому, если предыдущий метод по какой-либо причине не работает на вашем сервере, попробуйте этот.

         
        RewriteEngine включен
        RewriteCond %{HTTPS} выкл.
        RewriteRule (.*) https://example.com/$1 [R=301,L]
         9www\.
        Правило перезаписи (.*) https://www.example.com/$1 [R=301,L]
         

        Обратите внимание на разницу между этим и предыдущим методом. Здесь мы добавляем еще одно условие перезаписи, которое проверяет запрос префикса www . Если запрос содержит префикс , а не , ИЛИ если HTTPS отключен, запрос перенаправляется на каноническую версию URL-адреса. Это гарантирует, что все запросы будут обслуживаться через SSL/HTTPS, а также то, что префикс www (т. е. поддомен) всегда будет включен в URI запроса.

        Примечание: , чтобы изменить этот метод вместо перенаправления с HTTPS на HTTP, измените RewriteCond на на и замените https на http в RewriteRule . 443$ RewriteRule (.*) https://example.com/$1 [R=301,L]

        Как написано, этот код проверяет, находится ли запрос на порту сервера 443 , что является общим для зашифрованных соединений. Ваш сервер может использовать или не использовать порт 443, поэтому, если вы не уверены, спросите у своего веб-хостинга.

        К вашему сведению: вот некоторая альтернативная логика для RewriteRule :

         RewriteRule (.*) https://example.com%{REQUEST_URI} [R=301,L] 

        Примечание: отредактируйте пример .com , чтобы соответствовать вашему собственному домену. Чтобы изменить этот метод вместо перенаправления HTTPS на HTTP, измените порт сервера с 443 (https) на порт http-сервера по умолчанию (обычно 80 ) и замените https на http в RewriteRule .

        Notes

        Обратите внимание, что каждый сервер настроен по-своему, и перенаправление HTTPS на HTTP (или наоборот) кажется одной из тех задач, которые кажутся простыми, но на самом деле требуют либо доступа к файлу конфигурации Apache, либо некоторой пробной версии.

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

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