Файл .htaccess

Содержание:

301 Редирект в htaccess с http + www на https без www

301 редирект в создании сайтов и их же продвижении играет самую важную скрипку, ведь при криво настроенном перенаправлении ваш сайт с легкостью вылетит из поиска, раздублируются страницы по самое немогу, а также привнесет раздрай в вашем творении. И чтобы этого не произошло надо настраивать 301 Редирект в htaccess правильно! (с Домена на нужный Домен, со Страницы на правильную Страницу). 

А пока немного теории: 301 редирект это по сути простая 301-ая ошибка (301 Permament Redirect), которая возвращается сервером при запросе конкретного адреса вашего сайта, расшифровывается так: «Сайт на постоянной основе перенесен на такой-то адрес». Все пользователи, боты и другие инопланетные обитатели зашедшие на ваш сайт, будут перенаправляться по новому месту прописки, и для поисковых систем Яндекс, Гугл и других (произойдет склейка домена), весь вес сайта будет перенесен на новый адрес.

Однако санкции наложенные на старый сайт перенесены не будут, иначе все конкуренты давно бы наклепали редиректов со своих ГовноСайтов на сайты конкурентов.

Итак: Правильная настройка 301 редиректа в .htaccess

Базовая настройка редиректа с WWW.site.ru на site.ru  до появления защищенного протокола выглядела так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) 
RewriteRule ^(.*)$ http://%1/$1 

Обратный редирект с site.ru на WWW.site.ru так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) 
RewriteRule ^(.*)$ http://www.%1/$1 

Теперь же когда повсеместно стали использоваться Https (SSL) защищенные протоколы. Стали делать переадресацию с с http на https

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Но тут возник вопрос. Как же правильно объединить эти 2 301 редиректа в один, получить компактный код и чтобы не слишком заморачиваться. На просторах интернета я нашел такой вот код и он меня вполне устраивает.

Сразу и перенаправление с www на без + редирект с http на https:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule (.*) https://site.ru/$1 


Ниже новый вариант который 100% работает (правка от 09.02.2018)

RewriteEngine on
 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ 
RewriteRule ^(.*)$ https://%1/$1 
 
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Примечание!1) site.ru — нужно заменить на ваш адрес сайта2) Эти две строчки: 

Options +FollowSymLinks
RewriteEngine On

Сразу прописаны в файле .htaccess в CMS Joomla 1.5 / 2.5 / 3.x / итд. Однако если вы их не нашли в этом файле то, чтобы код работал, их необходимо прописать.

Также чтобы не забыть — Простые редиректы!

Redirect 301 / http://site.com
Redirect 301 /katalog/tovar1.html http://drugoysite.ru/tovar2.html

Страница на страницу:

Redirect 301 /katalog/tovar-old.html /katalog/tovar-new.html

Я делаю сайты на Joomla 3, но эти редиректы подходят большинству сайтов на php с .htaccess

Как работает mod_rewrite. Флаг [L]

изменение запроса не заканчивается на последнем RewriteRule— Постойте, но ведь есть флаг , который останавливает обработку запроса mod_rewrite’ом!текущую итерацию

  1. Когда используется внешний редирект — или . В случае внешнего редиректа дальнейшая обработка запроса нежелательна (см. ниже про флаг ), и ее лучше остановить.
  2. Когда в .htaccess есть зацикливание, от которого не избавиться, и обработку запроса mod_rewrite’ом нужно принудительно прекратить. В этом случае используется специальная конструкция — см. в конце статьи советы на эту тему.

В результате выполнения всех RewriteRule запрос меняется таким образом, что конечный результат равен исходномуApache видит это и не запускает повторную обработку запросаБудет возвращен файл a.html

Выполнять редирект http на https или нет

Протокол https –  четкая эффективность получения данных безопасными путями. Такой подход возник после использования Google определения существования редиректа с http на https. Это влияло на релевантность интернет-страницы.

На данный момент это всего лишь 1% вероятности поднятия рейтинга

Google с большим вниманием станет относиться к проблемам безопасности, и это очень важно. Для пользователей наличие «замочка» в адресной строке вызовет доверие к выбранной странице

Значок «замочка» указывает на наличие протокола https. При его отсутствии наблюдается снижение уровня доверия, и возникает высокая вероятность того, что читатель уйдет на страницу конкурента.

Применение протокола https предусматривает 3-уровневую защиту данных:

  1. Кодирование. Раскодирование возможно при наличии ключа, что исключает доступ посторонними лицами.
  2. Редирект с http на https – обеспечение целостного хранения информации и отсутствие искажений.
  3. Авторизация не позволяет мошенникам использовать ваши вводимые данные в своих целях.

Преимущества защищенного протокола:

  • повышении позиции в поисковике, что гарантирует положительный эффект релевантности;
  • контроль и защита данных пользователя.

Переход на https — зачем мне это?

Я бы выделил 4 причины:

  1. Забота о безопасности данных: сейчас по этой теме сходят все с ума (раньше все клали с пробором, но теперь…). Для сайтов работающих с деньгами и онлайн оплатой — это острая необходимость, т.к. шифруются все данные. Для простых информационных ресурсов — вас все равно заставят перейти на https, т.ч. выбора особо нет.
  2. Это фактор ранжирования: и Яндекс и Google открыто об этом говорили. Если раньше только Гугл заставлял переводить сайты на https, то сейчас за это взялось зеркало Рунета и с 24 января 2019 года в вебмастере уже многие увидели предупреждение:

    Т.е. это благотворно скажется на ваших позициях и трафике с поисковых систем (на самом деле нет, чаще вообще никак не скажется )

  3. Больше доверия со стороны пользователей. Когда посетитель видит в браузере метку:

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

  4. Ради HTTP/2 и большей скорости, которая так же является фактором ранжирования. В среднем прирост по скорости достигает 20-30% практически за 20-30 минут работы.

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

Подготовка

Сначала нам необходимо получить сам SSL сертификат, можно его купить, можно использовать и бесплатный. В этой статье мы будем рассматривать самый простой случай, когда сертификат установит сам хостер. Вариант еще проще – получить в 2 клика бесплатный сертификат у Beget.

  • Если сайт открылся – все хорошо, переходим к следующему пункту.
  • Если не отрылся – подождите 10-15 минут и проверьте снова. Если нет – нужно разбираться, правильно ли установлен сертификат.
  • Если произошел редирект на http версию – нужно искать в плагинах, functions.php или в htaccess правила для редиректа и удалить их

Перенаправить все сайты на HTTPS

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

Чтобы создать единый всеобъемлющий HTTP-блок, который будет перенаправлять посетителей на HTTPS-версию сайта, откройте файл конфигурации Nginx и внесите следующие изменения:

Давайте проанализируем код построчно:

  • — Устанавливает этот серверный блок как блок по умолчанию (всеобъемлющий) для всех несовпадающих доменов.
  • — — недопустимое доменное имя, которое никогда не соответствует ни одному реальному доменному имени.
  • — Перенаправить трафик на соответствующий блок HTTPS-сервера с кодом состояния 301 (перемещен навсегда). Переменная содержит доменное имя запроса.

Например, если посетитель открывает в браузере, Nginx перенаправит запрос на .

Если возможно, предпочтительнее создавать перенаправление для каждого домена вместо глобального перенаправления HTTP на HTTPS.

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

301 редирект или 301 Permanent Redirect – это постоянная переадресация одного URL-адреса на другой. Само слово «редирект» дословно переводится с английского как «перенаправление».

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

.htaccess

Если приложить максимум усилий — 301 редиректом возможно решить широкий круг проблем с оптимизацией, и глобально улучшить конверсию сайта. Соответственно, как сделать редирект на другой сайт нужно знать любому SEO специалисту и веб-мастеру.

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

Зачем нужен 301 редирект и в каких случаях его используют?

301 редирект — весьма универсальный инструмент для любого оптимизатора. Он позволяет совершить перенос ссылочного наполнения одной страницы на другую. Чаще всего делают редирект на другой сайт при переезде на другой домен, соединении дублей интернет страниц или перенаправлении с «www» на «без www» и наоборот.

wwwбез wwwпо наследству

301 редирект способен передать:

  • индекс цитирования;
  • все ссылочное наполнение.

301 редирект не способен передать:

  • возраст сайта;
  • какие либо фильтры или санкции;
  • присутствие в каталогах.

Ко всему прочему, возможен вариант, когда редирект выступает способом добавления в конце ссылки косой черты — слеша. То есть «http://site.com/news» при помощи редиректа изменяют на «http://site.com/news/».

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

Кроме всего прочего 301 редирект достаточно часто используется в SEO, так как позволяет показать поисковым роботом, что страница переадресуется навсегда. Ну и, конечно, 301 редирект позволяет без труда перенести позиции старых страниц на новые.

Как настроить 301 редирект?

Решений этой задачи на самом деле множество, все зависит от того какими техническими характеристиками обладает хостинг вашего сайта. Сейчас мы приведем несколько наиболее простых вариантов, как сделать 301 редирект.

Запомните, что все операции производится в файле .htaccess или httpd.conf (для сервера Apache).

Вариант 301 редиректа для переадресации на другой домен:

Redirect 301 / http://www.site.com/index.htm

В данном примере все страницы сайта будут перенаправлены на другой.

301 редирект для одной страницы выглядит так:

Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm

В качестве последнего примера приведем следующее:

Redirect permanent /test http://www.test.com/

Redirect permanent / http://enter.test.com/

Видно, что при попадании пользователя или поискового робота в директорию test он автоматически перенаправляется на «www.test.com», все остальные перейдут на «enter.test.com».

Можно, конечно, использовать готовый скрипт редиректа, которых полно в сети. Однако для успешности данной операции необходимо чтобы на хостинге были включены модули «mod_alias».

Как проверить работает ли 301 редирект?

Самые распространенные ошибки, при которых 301 редирект отказывается работать правильно – это наличие прочих редиректов, мешающих работе.

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

Переходя к практике, давайте рассмотрим как проверить 301 редирект.

Допустим, посетитель вводит в адресной строке браузера ссылку «http://primer.com/index.php» и нажимает «ввод». Браузер совершает HTTP-запрос и посылает его серверу, который возвращает HTTP-ответ.

При установленном редиректе, в поле «Location» будет прописан другой адрес страницы, например: «http://primer.com/surprize.php», куда и произойдет переадресация.

Существует много сервисов и плагинов позволяющих проверить работоспособность редиректа.

HttpFox

Плагин HttpFox для браузера Mozilla Firefox построчно фиксирует загрузку страницы, что позволяет отслеживать связки редиректов, а так же порядок и быстроту загрузки интернет страницы.

Надеемся, что данная статья помогла вам сделать редирект на новые страницы сайта без каких-либо проблем.

Удачи Вам!

Возможности и для чего нужен

В данном файле сайтостроители могут:

  • Настраивать директивы простого перенаправления (редиректы). Это позволит после смены домена отправить посетителя со страницы предыдущего сайта на новый проект.
  • Переадресовывать с URL, где есть www, на домен без www. Или же на https после того, как установите ssl сертификат.
  • Описывать ошибки. В их числе и ошибка 404 с заменой на необходимую страницу.
  • Кэширование файлов. Делается с целью ускорения работы веб-ресурса.
  • Создавать ЧПУ. Это «Человеко-понятные УРЛы», то есть, формируются ссылки, понятные для интернет-пользователей.
  • Изменять исходный код страниц.
  • Управлять доступом к файлам и директориям при помощи паролей.
  • Задавать индексный файл.
  • Открывать и закрывать доступ с определенных IP-адресов.
  • Управлять поисковыми ботами на сайте.
  • Настраивать директивы сложного направления.

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

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

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

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

Для этого вам понадобится самый обычный текстовый редактор, к примеру, Блокнот, который есть на любом ПК:

  1. Откройте Блокнот, ничего в нем не пишите.
  2. Выберите пункт «Файл» и нажмите «Сохранить как».
  3. Появится окно, где напротив пункта «Тип файла» выберите All types» или «Все файлы».
  4. В строке «Имя файла» введите .htaccess и кликните на «Сохранить».

Далее перепроверьте, создан ли документ правильно. Обязательно посмотрите, не сохранили ли вы его как .htaccess.txt. Затем загрузите файл в корневую папку сервера, и если не отобразится ошибка 500, значит, вы все сделали правильно.

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

Канонизация домена сайта или как склеить домен?

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

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

Во-вторых, это используется при 1) возникновении необходимости убрать дублированный контент; 2) переезде на новый домен.

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

Для склейки домена с www с адресом без www:

Для склейки без www на www:

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

  • какой из вариантов находится в ТОПе поисковой выдачи;
  • по какому из вариантов больше страниц в индексе.

Канонизация слеша в конце URL

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

  • http://www.site.com/cat1/
  • http://www.site.com/cat1

Поэтому, после выбора одного варианта на веб-ресурсе вам стоит настроить такие переадресации:

Чтобы удалить слеш в конце:

Для добавления слеша в хвосте адреса:

Переадресация с одной страницы на другую:

Переадресация для зеркал домашней страницы

Нижеприведенный фрагмент кода дает гарантию, что все урлы главной страницы, включающие несколько вариантов прямых ссылок на страницу, к примеру, default.htm или index.html, будут перенаправлены на каноническую домашнюю страницу, http://www.site.com/:

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

Но если урл старого каталога начинается непосредственно после имени домена: www.site.com/old-catalog/, то стоит применить следующий код

Переадресация при изменении файловых расширений

Если вдруг вы перешли на альтернативную платформу или систему управления контентом, и поменяли расширения адресов вашего сайта, тогда используйте такой формат перенаправления.

Примеры использования для предотвращения появления на сайте дубликатов страниц

Построение редиректов из различных доменов и поддоменов

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

В идеале все дополнительные доменные адреса, включая www.site.ru, www.site.net, test.site.com, будут переадресованы на основной источник www.site.com.

Как удалить несколько слешей либо тире в адресе сайта

Бывают случаи, когда по неизвестным причинам адрес может включать несколько слешей, например, www.site.com/catalog////page-3.html. Здесь необходимо проставить 301-редирект на страницу с одним слешем www.site.com/catalog/page-1.html:

Также доступна опция объединения нескольких тире в одно из URL-адреса: от www.site.com/catalog/page-1.html:

Как сделать переадресацию с любого URL на адрес с нижним регистром?

Так как поисковики учитывают разницу с разным регистром букв, при разработке веб-ресурса настоятельно рекомендуется добавлять все URL-адреса именно в нижнем регистре

Но если вы изначально не акцентировали внимание на этом моменте, то лучше использовать такой алгоритм перенаправления на уровне php -скрипта:

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

Мы рассмотрели, как обрабатывается редирект с HTTP на HTTPS через htaccess после SSL / TLS согласования. А также выяснили, что для перенаправления клиентов с сайта или страницы на HTTPS нужен валидный сертификат SSL, который охватывает оба домена. Далее я расскажу об общих стратегиях настройки HTTPS-редиректов.

Существует два типа настройки редиректов с HTTPS:

  1. Редирект на уровне сервера;
  2. Редирект на уровне приложений.

Термин сервер обозначает любой сервер, который находится перед веб-приложением и обрабатывает входящий HTTP-запрос. Например, front-end сервер, сервер балансировки нагрузки или единичного приложения.

Термин приложение обозначает веб-приложение, которое может быть либо столь же простым, как PHP-скрипт, либо более сложным, таким как серверное Unicorn-приложение интерпретации Ruby on Rails.

Что-то пошло не так и на сайт нельзя зайти

В данном случае следует вернуть все обратно и поискать причину сбоя в установленных плагинах или в одном из файлов темы — functions.php.  Отправляемся в wp-config.php и вставляем значения:

define('WP_HOME','http://clearfy.pro'); 

define('WP_SITEURL','http://clearfy.pro');

clearfy.pro в данном случае пример. Вместо этого URL должен быть адрес вашего сайта с протоколом http.

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

Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1

Как сделать редирект с https на http?

Решение 1

Делаем редирект на http с помощью .htaccess

Замечание Перечисленные ниже варианты предназначены для серверов Linux.

Пояснения для всех последующих вариантов Редактируем или создаём, если его нет, файл .htaccess в корневой папке вашего сайта, и добавляем сразу после один из нижеперечисленных вариантов, при этом не забыв изменить site.ru на URL вашего сайта.

Вариант 1

Вариант 2

Вариант 3

Вариант 4

Вариант 5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Попробуем ещё вариант — вместо %{HTTPS} указать %{ENV:HTTPS}

Вариант 11

Вариант 12

Замечание Если не работает, то можно попробовать поместить, указанные выше строки, в выражение IfModule.

ВАЖНОПри открытии сайта, Сначала браузер проводит проверку наличия SSL-сертификата и уже затем срабатывает редирект. Другими словами, если на сайте нет SSL-сертификата, то посетители сначала увидят предупреждение браузера о незащищённом контенте, и уже затем сработает редирект на http …

ЗамечаниеОбычно, при открытии сайта, Сначала браузер, как правило, открывает версию https сайта. Но это не точно. На самом деле, это зависит от настроек сервера и сайта. Если вебсервер отдаёт заголовок «Strict-Transport-Security» ( смотрим в настройках add_header Strict-Transport-Security ), тогда браузер будет открывать сайт по HTTPS протоколу. Дополнительно, этот заголовок появляется, если в настройках web-домена установлено: «Повышенная безопасность SSL»

Если Решение 1 не работает?

  В частности этим грешат серверы и VDS с панелью ISP Manager 5 ( на других панелях управления, например cPanel, с Lunix на этом же сайте переадресация работает! )

Решение 2

Открываем и внимательно смотрим ваш сайт (для примера site.ru )именно по протоколу httpS если он не ваш и отличаются и по внешнему виду и по контенту, то
нужно выяснить его ( URL ). Обычно это один из https сайтов, расположенный на вашем IP адресе. Найти список сайтов на вашем IP можно стандартным сервисом «Сайты на одном IP»

Итак, — хорошо — вы узнали, какой это сайт ( назовём его, для удобства https-sait.ru )

И теперь все дальнейшие правки, как ни странно, будем вести не на проблемном сайте, а на найденном (https-sait.ru)!

Идея: поставить передресацию с https на http на найденном https сайте https-sait.ru

13 Решение: создаем в корне этого сайта в файле htaccess правила типа условное выражение такого вида:

Пробуем, проверяем.

Подводим итог.

Другими словами, для того, чтобы сделать редирект с https на http вашего сайта sait.ru, вам потребуется найти и открыть https-sait.ru, отредактировать там .htaccess файл, прописав правила аналогичные пункту 13 для каждого вашего сайта: sait 1, 2, 3.ru

Вот такие странности панели ISP Manager ….

Решение 3

Замечание Предлагаемое решение работает на серверах с NginX.

Если у вас сервер с nginx, тогда делаем переадресацию в его настройках

Вариант 3.1

Указав, вместо ip — ваш реальный IP, вместо site.ru — URL вашего сайта и вместо # пути к сертификату — реальный путь. Сохраняем и перегружаем сервер

Модифицированный вариант:

Вариант 3.2

находим и удаляем там же строку

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

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

Нужно же, чтобы сайт открывался как по http, так и по https. Если прописывать редирект в nginx на http

Вариант 3.2

Некоторые, устав бороться с NginX, сносят его и ставят классический редирект

Решение 4

Шаг 2: Покупка SSL сертификата

Прежде чем приобретать SSL нам нужно определиться с нашими потребностями.

Типы ssl

Все сертификаты выдаются для 1 домена:

Если у вас много поддоменов и вы хотите их перевести на https — стоит обратить внимание на сертификаты с пометкой Wildcard (количество поддоменов неограниченно)

Активация https для домена

После того, как вы решили какой тип сертификата вам нужен, купили его (свои сертификаты я покупал на gogetssl.com, а для блога решил потестить бесплатный Let’s Encrypt) и не забыли сохранить все ключи, которые вам были даны — самое время привязать все к вашему домену.

После активации домена он должен пройти валидацию:

Валидация домена пройдена

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

Бесплатный SSL от Let’s Encrypt

Let’s Ecnrypt — это некоммерческий центр сертификации

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

Яндекс и Google (а также браузеры) нормально относятся к нему, т.е. никаких трудностей у вас не будет.

У хостеров бесплатный сертификат подключается за 1 минуту

На многих хостингах можно буквально за минуту подключить бесплатный SSL.

Установка SSL на примере FastVPS

У вас есть ключи и все что вам нужно сделать — это добавить их в панели своего хостинга.

Просто вставить в поля свои ключи от центра сертификации

Конфигурация Apache

Перед тем, как сделать редирект с https на http, добавьте следующее правило перенаправления в файл конфигурации Apache (если у вас есть доступ к нему), либо в файл .htaccess, расположенный в корневом каталоге вашего сайта:

RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^www. 
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ 
RewriteRule ^ https://%1%{REQUEST_URI} 

Если вместо example.com вы хотите использовать по умолчанию URL www.example.com, то просто измените третью и пятую строки:

RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !^www. 
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ 
RewriteRule ^ https://www.%1%{REQUEST_URI} 

Виды редиректов по назначению

Чтобы улучшить положение своего сайта в выдаче поисковиков, нужно удалить лишние копии.

Переход на адрес без префикса www. Основное зеркало настраивается путем добавления в файл .htaccess таких команд:

1-я строка с кодом – RеwrіtеСоnd %{НТТР_НОSТ} ^www\.(.*)$

2-я строка – RеwrіtеRulе ^(.*)$ httр://%1/$1

Такой редирект можно провести и другим способом:

1-я строка – RеwrіtеЕngіnе Оn

2-я строка с частью кода – RеwrіtеСоnd %{НТТР_НОSТ} ^www\.prіmеr-sаіtа\.соm$

3-я строка – RеwrіtеСоnd %{RЕQUЕSТ_URІ} !^/rоbоts.*

4-я строка – RеwrіtеRulе ^(.*)$ httр://рrіmеr-sаіtа.соm/$1

Массовое объединение файлов іndех с расширениями *.рhр, *.html, *.htm и *.аsр

1-я строка с кодом – RеwrіtеСоnd %{ТНЕ_RЕQUЕSТ} ^{З,9}\ /іndех\.(рhр|html|htm)\ НТТР/

2-я строка – RеwrіtеRulе ^(.*)іndех\.(рhр|html|htm)$ httр://рrіmеr-sаіtа.соm/$1

Изменение протокола на https. Чтобы перевести сайт на защищенный протокол, прописываем комбинацию:

1-я строка – RеwrіtеСоnd %{НТТРS} =оf

2-я строка – RеwrіtеRulе ^(.*)$ httрs://%{НТТР_НОSТ}/$1

Есть также такой способ:

1-я строка – RеwrіtеСоnd %{НТТР:Х-НТТРS} !1

2-я строка – RеwrіtеRulе ^(.*)$ httрs://%{НТТР_НОSТ}/$1

Переход на httр

1-я строка с формулой – RеwrіtеСоnd %{НТТРS} =оn

2-я строка – RеwrіtеRulе ^(.*)$ httр://%{НТТР_НОSТ}/$1

Удаление лишних тире и слешей. Если в url есть ненужные слеши, нужно настроить редирект на страницу без них:

1-я строка – команда www.рrіmеr-sаіtа.соm/саtаlоg/раgе-1.html:

2-я строка – RеwrіtеСоnd %{RЕQUЕSТ_URI} ^(.*)//(.*)$

3-я строка – RеwrіtеRulе . %1/%2

Чтобы склеить тире, прописываем от www.рrіmеr-sаіtа.соm/саtаlоg/раgе-1.html:

1-я строка – RеwrіtеСоnd %{RЕQUЕSТ_URI} ^(.*)—(.*)$

2-я строка – RеwrіtеRulе . %1-%2

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

Настройка 301-й переадресации

Как настроить 301 редирект
Настройка 301 редиректа

Есть несколько способов проведения редиректа. Какой из них выбрать, зависит от движка сайта.

Через файл .htaccess (альтернатива для Арасhe – httpd.conf). Этот метод популярен из-за своей простоты. При его использовании в папке ресурса создается файл .htaccess. Если он там есть, нужно провести редактирование

При этом важно предварительно сохранить файл (или весь сайт) в исходном виде. Чтобы сделать постоянный редирект, открываем его и в начале прописываем команды, заменив адреса своими.

Переадресация сайта целиком:

Rеdіrесt / httр://novyi-saіt.соm/ – здесь указываем свой новый адрес сайта.

Удаление префикса WWW (переход на адрес без него):

1-я строка – кодовая комбинация – RеwrіtеЕngіnе оn;

2-я строка – RеwrіtуСоnd %{НТТР_НОSТ} ^www.рrіmеr\.соm – здесь указываем первоначальный адрес своего сайта;

3-я строка – RеwrіtеRulе ^(.*)$ httр://рrіmеr.соm/$1 – в этой строке url без префикса.

Перемещение на другую страницу:

Rеdіrесt 3О1 /strаnіса-1.html / strаnіса -2.html

Переход на НТТРS с НТТР:

1-я строка с кодом – RеwrіtеЕngіnе Оn

2-я строка – RеwrіtеСоnd %{НТТРS} оff

3-я строка – RеwrіtеRulе (.*) httрs://%{НТТР_НОSТ}%{RЕQUЕSТ_URI}

Важно учитывать реализацию команды на сервере с операционной системой Apachе и Linux с активацией модуля Mod_rewrite. Можно использовать файл конфигурации hpptd.conf

  1. При помощи специальных плагинов в CMS. Это также довольно простой способ переадресации. Если сайт построен на WordPress, для редиректа можно использовать Simple 3О1 Redirects, расширение, единственный минус которого заключается в необходимости составлять перечень адресов для перенаправления вручную.
  2. Через условие РНР. Этот способ подходит в том случае, если есть достаточный объем знаний о РНР и структуре интернет-проекта. Для его применения нужно для сайта на СМS открыть в корне движка index.php и вписать в этот файл:

іf($_SЕRVЕR == «/іndех.рhр») { здесь указывается старый адрес

hеаdеr(«Lоcаtіоn: /»,ТRUЕ,3О1); – в этой строке нужно указать новый url

ехіt()

}

Переадресацию РНР можно провести, отправив заголовки (скрипт):

<?рhр

hеаdеr(«НТТР/1.1 3О1 Mоvеd Реrmаnеntly»); -–команда постоянного редиректа

hеаdеr(«Lосаtіо: http://www. nоvyі-sаіt.соm/nоvаjа-рарса/novaia-stranica.htm»)

еxіt()

?>

  1. ASP. Прописываем следующее:

<%@ Lаnguаgе=VВScrіpt %>:

<%

Rеspоnsе.Stаtus=»3О1 Mоvеd Реrmаnеntly» – команда редиректа

Respоnse.АddHeаdеr «Lосаtіon», «httр://www.nоvyі-аdrеss.соm»

rеspоnsе.еnd

%>

  1. ASP.NET. В корневой папке сайта нужно найти web.config и прописать в этом файле такой набор команд:

<sсrірt runаt=»sеrvеr»>

рrіvаtе vоіd Раgе_Lоаd(оbjесt sеndеr, Systеm.ЕvеntАrgs е)

{

Rеsроnsе.Stаtus = «3О1 Mоvеd Реrmаnеntly»

Rеspоnsе.АddНеаdеr(«Lосаtіоn»,»httр://www.nоvyі-аdrеss.соm»)

}

</sсrірt>

  1. ColdFusion. Прописываем комбинацию:

<.сfhеаdеr stаtusсоdе=»3О1″ stаtustехt=»Mоvеd реrmаnеntly»>

<.сfhеаdеr nаmе=»Lоcаtіоn» vаluе=»httр://www.nоvyі-аdrеss.соm»>

  1. JSP (Java). Этот способ переадресации подходит, когда нужно внести незначительные коррективы в несложный проект. Можно внести код в один файл и разместить на каждой нужной странице с такими командами:

<sсrірt tyре=»tехt/jаvаsсrірt» srс=»rеdіrесt.js»></sсrірt>

<script type=»text/javascript»>

lосаtіоn=»httрs://yаndех.ru»

</sсrірt>

  1. CGI-скрипт на PERL. Используем следующее:

$q = nеw СGІ

рrіnt $q->rеdіrесt(«httр://www.nоvyі-аdrеss.соm/»)

  1. Ruby on Rails. Прописываем комбинацию:

dеf оld_асtіоn

hеаdеrs = «3О1 Моvеd Реrmаnеntly»

rеdіrесt_tо «httо://www.nоvyі-аdrеss.соm/»

еnd

  1. Nginx. Используем код:

іf ($hоst = ‘www.dоmаіn.соm’ ) {

rеwrіtе ^(.*)$ httр://dоmаіn.соm$1 реrmаnеnt

}

  1. HTML. Такой способ редиректа подходит для статичных несложных сайтов, на которых нужно изменить только отдельные страницы. Чтобы сделать переадресацию НТМL, нужно внести особый метатег. Например, для перемещения на другой сайт после 5 минут ожидания потребуется такая команда:

<mеtа httр-еquіv=»rеfrеsh» соntеnt=»5;httрs://mеstо-nаznасhеnіyа.рrо»>

Чтобы отправка посетителя на сайт https://mesto-naznacheniya.pro произошла моментально, достаточно заменить значение 5 на 0. Но если сайт крупный, такую переадресацию делать непросто и довольно долго, поэтому стоит выбрать более подходящий вариант.

Заключение

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

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

Существует много способов обработки URL-редиректов, и, надеюсь, эта статья помогла вам найти подходящий вариант, как сделать редирект с HTTPS на HTTP.

Данная публикация является переводом статьи «Redirects with HTTPS» , подготовленная редакцией проекта.

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

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

Adblock
detector