Файл .htaccess: что это такое, зачем он нужен, как правильно создать и настроить
Содержание:
- 301 Редирект в htaccess с http + www на https без www
- 3 варианта как сделать редирект с http на https
- Усложнения в HTACCESS-файле
- Правильный перевод сайта на HTTPS
- Выполнение HTTPS-редиректов на уровне сервера
- Наиболее популярные правила
- Что можно сделать с помощью файла .htaccess
- 301 (постоянный редирект)
- 302 (временный) редирект
- Перенаправление к не-www версии URL-адресов
- Перенаправление URL-адресов на HTTPS
- Перенаправление URL-адресов на HTTP
- Перенаправление основного домена на другой домен
- Удаление строки Query_String
- Установка языковой переменной на основе клиента
- Перенаправление фидов WordPress на Feedburner
- Все о htaccess – основные возможности
- 13 популярных ошибок при переходе сайта на https
- Перенаправления и изменение URL
- Примеры 301 редиректов в .htaccess
- 2.1. Редирект с одной страницы на другую
- 2.2. Редирект со всех файлов .htm на .html
- 2.4. Удаление лишних слэшей в адресе URL
- 2.5. Реврайт без редиректа
- 2.6. Простановка замыкающего слеша в конце адреса главной страница
- 2.8. Редирект GET параметров
- 2.9. Редирект на мобильную версию сайта m.site.ru
- 2.10. Редирект с поддомена
- Как влияет редирект с http на https на SEO
- Как настроить редирект с http на https через htaccess
- Проверка редиректа
- Создание постоянной переадресации 301 через настройки и плагины CMS
- Заключение
- Заключение
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
3 варианта как сделать редирект с http на https
Редирект с http на https на уровне сервера
Этот вариант перенаправления имеет ряд преимуществ. Технология такого решения предполагает прием сервером, который имеет сертификат SSL, закодированных HTTPS-запросов с последующей передачей кодированного ответа о перенаправлении без установления связи с сервером приложения.
Этот путь имеет более высокую скорость, поскольку при обработке перенаправления отсутствуют взаимодействия с приложением. Но сетевая конфигурация сервера отличается меньшей гибкостью, чем приложение.
В некоторых случаях (например, при отсутствии доступа к серверной конфигурации) невозможно реализовать перенаправление на базе сервера. Такие ситуации возникают при размещении ресурса на виртуальном хостинге или таких платформах, как Heroku, Azure или Google Platform. В этом случае остается вариант с использованием приложений.
HTTPS перенаправление на базе приложений
Этот вариант снижает скорость процесса, так как сервер должен провести обработку кодировки приложения и только после этого выдать ответ. Процесс перенаправления зависит от используемого языка программирования.
Другие варианты редиректа с HTTP на HTTPS
Для безопасного перенаправления могут использоваться несколько альтернативных вариантов. Они применяются в ситуациях, когда нет доступа к серверной конфигурации, а платформа, на которой создан сайт, не дает возможности применить язык программирования.
Для таких случаев можно рекомендовать поиск информации о том, предоставляет ли конкретная платформа HTTPS-редиректы для настройки. С другой стороны, можно использовать независимое приложение для перенаправления.
Оставить заявку
Усложнения в HTACCESS-файле
Проблемы при открытии HTACCESS-файлов
Microsoft Notepad отсутствует
При попытке открыть HTACCESS-файл возникает сообщение об ошибке, например «%%os%% не удается открыть HTACCESS-файлы». Как правило, это происходит в %%os%%, поскольку Microsoft Notepad не установлен на вашем компьютере. Вы не сможете дважды щелкнуть, чтобы открыть свой HTACCESS, так как ваша ОС не знает, что с ним делать.
Совет: Если вам извстна другая программа, которая может открыть файл HTACCESS, вы можете попробовать открыть данный файл, выбрав это приложение из списка возможных программ.
Неверная версия Microsoft Notepad
В других случаях версия файла Apache HTACCESS File может не поддерживаться вашей версией Microsoft Notepad. Загрузите последнюю версию Microsoft Notepad с веб-сайта Microsoft Corporation, чтобы убедиться, что у вас установлена правильная версия. Эта проблема чаще всего встречается, когда у вас есть более старая версия программного приложения, и ваш файл был создан более новой версией, которую он не может распознать.
Совет . Исследуйте HTACCESS-файл, щелкнув правой кнопкой мыши и выбрав «Свойства», чтобы найти подсказки о том, какая версия вам нужна.
В первую очередь проблемы, возникающие при открытии HTACCESS-файлов, связаны с тем, что на вашем компьютере установлена неправильная версия Microsoft Notepad.
Предполагая, что у вас установлена правильная версия Microsoft Notepad, другие проблемы могут помешать вам открывать HTACCESS-файлы. Если у вас по-прежнему возникают проблемы с открытием HTACCESS-файлов, могут возникнуть другие проблемы, препятствующие открытию этих файлов. Эти другие проблемы включают (перечислены в порядке от наиболее до наименее распространенных):
Правильный перевод сайта на HTTPS
После покупки SSL-сертификата и его установки — важно грамотно перевести сайт на HTTPS. Под правильным переводом подразумевается:
-
Настройка корректного отображения сайта для пользователей.
-
Правильная индексация поисковыми системами — одной версии (зеркала) и направление трафика на неё.
-
Сохранение/увеличение трафика из поиска и прочих источников.
Если сайт уже индексируется поисковыми системами и привлекает целевой трафик, то полный переход на HTTPS затребует время на смену главного зеркала сайта.
Итак, для грамотного переезда на HTTPS, сохранения уровня трафика и роста конверсии требуется:
Купить и установить на сервер проверенный SSL-сертификат. Подойдёт любой крупный партнер. Самый сильный игрок на этом рынке — компания Symantec, которая владеет такими центрами сертификации как Thawte, Verisign и Geotrust.
Проверить, что все ссылки внутри домена ведут на страницы HTTPS-версии. В том числе: ссылки в XML-карте сайта, шаблонах, подключаемых стилях и прочие. Отдельно упомянем настройки, которые были произведены со «старой» версией, теперь все их надо перенести на HTTPS, скажем, файлы загруженные в Google Disavow Tool, ссылки на действующие XML-карты сайта в панелях.
Проверить, что весь подключаемый контент доступен именно по HTTPS. В частности, все подгружаемые аудио- и видеофайлы и скрипты должны указывать на защищенный протокол (Яндекс.Карты, YouTube и так далее).
Проверить визуально корректность отображения HTTPS-версии для пользователей.
Добавить обе версии в панели вебмастера Яндекса и Google.
Настроить в панелях вабмастеров переезд на версию с HTTPS и проконтролировать, что поисковый трафик из Яндекса полностью переключился на HTTPS-версию (по данным Яндекс.Метрики / Google Analytics).
Настроить 301-редиректы со всех второстепенных вариантов написания на новое основное зеркало и проверить их отработку. Все редиректы должны быть в один шаг и все с кодом 301
Это важно.
Для удобства и проверки верного кода можно использовать инструмент «Сервис для массовой проверки ответа сервера» от Пиксель Тулс.
Рис. 4. Проверка корректности отработки 301-редиректов на основное зеркало. Верная настройка с переадресацией со всех второстепенных зеркал в один шаг.
Для полного контроля рекомендуется проверять корректность работы с помощью бесплатных сервисов, пример — SSL Checker. Часто, на уже работающих сайтах имеются ошибки в настройках или установке SSL-сертификата.
Рис. 5. Работа сервиса SSL Checker, осуществляющего бесплатную проверку установки SSL-сертификата.
Выполнение HTTPS-редиректов на уровне сервера
Выполнение HTTPS-редиректов на уровне сервера является более предпочтительным. В этом случае сервер, на котором установлен сертификат SSL, принимает зашифрованный HTTP-запрос и возвращает зашифрованный HTTP-ответ о редиректе в соответствии с параметрами конфигурации без соединения с сервером приложения или выполнения кода приложения.
HTTPHTTPSWWWне-WWWHTTPSили наоборот
Следующий фрагмент кода является примером конфигурации Nginx, в котором задается редирект с http://example.com, http://www.example.com и https://www.example.com на https://example.com:
server { listen 80; server_name example.com www.example.com; return 301 https://example.com$request_uri; } server { listen 443 ssl; server_name example.com www.example.com; # ssl configuration ssl on; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; if ($http_host = www.example.com) { return 301 https://example.com$request_uri; } }
Реализация редиректа на уровне сервера более предпочтительна, но она не всегда осуществима, поскольку вы можете не иметь доступа к конфигурации сервера. Это касается виртуального хостинга или таких платформ, как Heroku, Azure или Google Platform.
Наиболее популярные правила
Приведенные примеры работают для серверов функционирующих на APACHE, для NGINX настройки в файле .htaccess работать не будут. В примерах используется %{QUERY} — так обозначается часть URL, которая следует после знака вопроса. Правила для редиректа срабатывают только при условии соответствия правилу указанному в редиректе.
При настройке правила редиректов в файле .htaccess все правила необходимо указывать после указанных двух строк, либо просто добавьте их:
Options +FollowSymLinks RewriteEngine On
301 редирект для страниц имеющих Get-параметры в URL
Для наглядности примера допустим адрес страницы имеет вид http://mysite.ru/catalog/index.php?IBLOCK_ID=5&SECTION_ID=15. Следующее правило будет делать переадресацию:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=15$ RewriteRule ^catalog/index\.php$ /newcatalog/?
Иногда необходимо настроить редирект для изменяющихся Get-параметров, например в текущем примере динамическим параметром будет SECTION_ID:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=(.*)$ RewriteRule ^catalog/index\.php$ /newcatalog/?
Переадресация со страниц без значения Get-параметра
Например адрес страницы имеет вид — http://mysite.ru/?addon, тогда редирект будет следующим:
RewriteCond %{QUERY} ^addon$ RewriteRule ^$ /?
Переадресация одного адреса, без вложенных адресов
Например довольно часто необходимо настроить переадресацию со страницы раздела http:/site.ru/razdel/, однако прочие страницы в данном разделе должны работать без редиректа, например страница http://mysite.ru/razdel/section.php?SECTION_ID=1. Для этого нужно добавить всего один символ — $.
RewriteRule ^razdel/$ http://mysite.ru/new-razdel/
Что можно сделать с помощью файла .htaccess
Теперь пришло время разобраться с тем, какие правила можно определить в файле .htaccess для WordPress. Я разобью эти правила на три основные категории:
- Правила редиректов.
- Для повышения скорости работы WordPress.
- Обеспечение безопасности сайта.
301 (постоянный редирект)
Правило 301 редиректа сообщает браузеру и поисковым роботам, что URL был окончательно перемещен на другой URL. Пример правильного перенаправления:
Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
302 (временный) редирект
Если нужно временно перенаправить пользователей на другую страницу, используйте 302 редирект:
Redirect 302 /oldpagфe.html http://www.yourwebsite.com/newpage.html
Перенаправление к www версии URL-адресов
Если нужно, чтобы URL-адреса сайта всегда начинались с www, используйте следующий код:
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com RewriteRule ^(.*)$ http://www.example.com/$1
Перенаправление к не-www версии URL-адресов
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule ^(.*)$ http://example.com/$1
Перенаправление URL-адресов на HTTPS
Чтобы перенаправить пользователей и поисковых роботов на HTTPS-версию сайта используйте следующий код:
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1
Перенаправление URL-адресов на HTTP
Для принудительной установки не HTTPS-соединений на сайте используйте следующий код:
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} ^https$ RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}</IfModule>
Чтобы перенаправить домен на подкаталог, используйте следующее правило:
RewriteCond %{HTTP_HOST} ^example.com$ RewriteCond %{REQUEST_URI} !^/sub-directory-name/ RewriteRule (.*) /subdir/$1
Перенаправление основного домена на другой домен
Чтобы перенаправить несколько доменных имен (например, abc.com, abc.net, abc.org) на один домен, используйте следующее правило:
Redirect 301 / http://www.abc.com/
Добавьте приведенное выше правило для доменов abc.net и abc.org, чтобы перенаправить их на abc.com.
Удаление строки Query_String
URL-адреса сайта отображают тот же контент при доступе с добавлением запроса. Например, веб-страница myblog.com также доступна по адресу myblog.com/?my=query. Это может привести к дублированию контента при сканировании сайта поисковыми роботами.
Чтобы решить данную проблему, удалите из URL-адреса строки запроса с помощью следующего кода:
RewriteCond %{THE_REQUEST} ^+ /.* HTTP RewriteCond %{QUERY_STRING} !^$ RewriteRule .* https://www.mywebsite.com%{REQUEST_URI}?
Установка языковой переменной на основе клиента
Чтобы определить язык браузера и перенаправить пользователя к соответствующей версии сайта, добавьте приведенное ниже правило в файл .htaccess.
RewriteCond %{HTTP:Accept-Language} ^.*(de|es|fr|it|ja|ru|en).*$ RewriteRule ^(.*)$ -
Перенаправление фидов WordPress на Feedburner
WordPress по умолчанию генерирует RSS-каналы для записей. Чтобы использовать сторонний генератор RSS-каналов (например, Feedburner) добавьте следующий код:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/feed.gif$ RewriteRule .* - RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) RewriteRule ^feed/?.*$ http://feeds.feedburner.com/apache/htaccess RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php
Все о htaccess – основные возможности
Правильная настройка файла htaccess позволяет вносить некоторые изменения в работу веб-сервера без получения административных прав. Управлять директивами основного конфигурационного файла (httpd.conf) могут только администраторы.
В процессе обработки запросов веб-сервер может генерировать коды различных ошибок. Например, если введенный URL ссылается на несуществующую страницу, Apache отправит код, который может быть непонятен рядовому пользователю. При разработке веб-приложений создают отдельные страницы с пояснениями ошибок (например, «Ошибка 404 – страницы не существует»). Чтобы организовать процесс автоматического перенаправления на данную страницу, используют следующую директиву в файле htaccess:
ErrorDocument 404 https://website.net/error/404.html
Некоторые хостинг-провайдеры упрощают процесс создания страниц ошибок и организации перенаправления. Например на нашем виртуальном хостинге страницы ошибок устанавливаются при помощи панели управления.
Чтобы задать в htaccess перенаправление на файл страницы сайта, используют директиву 301. Данная директива имеет следующий синтаксис:
Redirect 301 /some_page.html https://website.net/some_another_page.html
Если требуется выполнить перенаправление на новый домен (актуально например, если сайт был перенесен, а часть посетителей привыкли использовать старое доменное имя), вводят следующую директиву:
Redirect 301 / https://www.new_website_domain.net/
Что касается редиректа, некоторые разработчики выполняют htaccess 404 редирект, то есть перенаправление, например, на главную страницу веб-ресурса в случае получения запроса на несуществующую страницу. С точки зрения SEO данный подход считается некорректным.
13 популярных ошибок при переходе сайта на https
Пишу самые популярные моменты, которые знаю из своего опыта или опыта коллег:
- Сделать 302 редирект вместо 301 для склейки версий http с https;
- Сделать редирект всех внутренних страниц на главную;
- Допустить цикличные редиректы;
- Забыл, что твой сайт без www, но склеить с https://www.site.ru;
- Забыл прописать новый путь для sitemap.xml;
- Пропустил этап с заменой абсолютных ссылок;
- Не изменил урлы в скриптах и медиа-контенте;
- В карте сайта указаны урлы на версию с http;
- Описался при наборе домена при получении сертификата;
- Может сломаться 1С, если забыли обновить данные;
- Сайт интегрирован с различными API и вы забыли изменить адреса;
- Косяки с rel=”canonical” на старые страницы;
- Не очистил кэш и начал сам себе выдумывать проблемы.
А с какими косяками вы сталкивались?
Перенаправления и изменение URL
Популярное использование файла — задание перенаправлений или изменений URL. Данный метод помогает в целях SEO изменять имя домена, или перестраивать файловую структуру проекта, или делать длинные трудно запоминаемые адреса URL простыми и понятными.
Перенаправления
Перенаправления могут быть очень простыми, например:
Redirect 301 ^old\.html$ http://localhost/new.html
В данном случае используется код статуса HTTP 301 (перемещено постоянно) и все запросы к перенаправляются на . Здесь используется регулярное выражение для определения соответствия URL правилу, что добавляет сложности в построение правила, но придает уверенности в правильности URL. Требуется указывать полный адрес URL ресурса, на который происходит перенаправление.
Изменения
Правило изменения также может быть очень простым:
RewriteEngine on RewriteRule ^old\.html$ new.html
В данном примере происходит простое перенаправление с одного файла на другой, которое выполняется прозрачно, без изменения содержания адресной строки в браузере. Первая директива, , просто гарантирует, что механизм изменения запущен.
Чтобы обновить содержание адресной строки браузера посетителя, мы можем использовать флаг в конце правила :
RewriteRule ^old\.html$ http://hostname/new.html
Флаг приводит к внешнему перенаправлению, поэтому адрес URL будет соответствовать новой странице. Также можно использовать код статуса для флага, что приведет к обновлению страницы в браузере посетителя.
Одно возможное использование перенаправлений — изменение адресов URL к более простой форме для посетителей и поисковых роботов. Рассмотрим пример:
RewriteRule ^products/(+)/(+)/(+) product.php?cat=$1&brand=$2&prod=$3
Данное правило позволяет использовать посетителю адрес URL наподобие products/turntables/technics/sl1210, который будет трансформироваться в product.php?cat=turntables&<WBR>brand=technics&prod=sl1210. Круглые скобки между слешами в регулярном выражении примера выполняют объединение в группы – мы можем использовать каждую из них как , и соответственно. Комбинация в скобках соответствует любому символу, кроме слеша, в любых количествах.
На практике, изменение URL имеет существенно более сложные правила, чем описанные в наших примерах, но они позволяют решить очень сложные задачи.
Примеры 301 редиректов в .htaccess
Мы уже рассматривали множество примеров с редиректом по в статьях:
- 301 редирект для удаления/добавления слэша в конце URL
- 301 редирект с index (.html и .php) на корень сайта «/»
- Редирект 301 с http на https
- Редирект 301 с www на без www
- Смена адреса сайта — редирект со старого домена на новый
Здесь мы дополним варианты редиректов, которых еще не было.
2.1. Редирект с одной страницы на другую
Редирект с site.ru/cat/oldpage на site.ru/newpage.html
RewriteRule ^cat/oldpage.* /newpage.html
Или второй вариант:
Redirect 301 /cat/oldpage http://www.site.com/newpage.php
2.2. Редирект со всех файлов .htm на .html
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.htm$ $1.html
Или второй вариант:
RewriteRule ^(.*)\.htm$ $1.html
С любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php
RewriteRule ^old(.*)$ /new.php
2.4. Удаление лишних слэшей в адресе URL
Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2
2.5. Реврайт без редиректа
Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy
RewriteRule ^news/happy.* /news.html
2.6. Простановка замыкающего слеша в конце адреса главной страница
Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru. Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/
RewriteCond %{REQUEST_URI} /++$ RewriteRule ^(.+)$ %{REQUEST_URI}/
Например для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:
RewriteRule ^directoriya/(.+)$ http://site.com/$1
Или второй вариант:
RewriteCond %{DOCUMENT_ROOT}/directoriya/$1 -f RewriteRule ^(.*)$ directoriya/$1
2.8. Редирект GET параметров
Например, сделать редирект со страницы /?act=page&id=2 на /page-2/
RewriteCond %{QUERY_STRING} act=page RewriteCond %{QUERY_STRING} id=(\d+) RewriteRule .* /page/%1/? ]
2.9. Редирект на мобильную версию сайта m.site.ru
В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства , далее происходит замена адреса сайта на m.URL
RewriteCond %{HTTP_HOST} ^(.*)$ RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1
2.10. Редирект с поддомена
Например, выполним редирект с любой страницы поддомена poddomen.site.ru на основной домен site.ru
RewriteCond %{HTTP_HOST} ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI}
Как влияет редирект с http на https на SEO
После настроек редиректа с http на https обязательно измените адрес своего ресурса robots. txt (нужно указать новое главное зеркало в панели вебмастера для поисковиков).
Позиции сайта первое время после установки редиректа могут снизиться, но лишь на небольшой промежуток времени. Чем раньше вы выполните перенастройку, тем менее значительные скачки будут по SEO выдаче.
Рекомендации, которые предоставил Яндекс в отношении данного редиректа:
- Добавить ресурс в панель Яндекс-вебмастер.
- Произвести настройку в robots директивы Host (нужно, чтобы robots. txt нового и старого ресурса не отличался).
- После того, как оба сайта будут признаны зеркалами, необходимо изменить протокол в сервисе «Настройки индексирования — Главное зеркало». Через несколько недель будет определено основное зеркало.
- Установить перенаправление со старого протокола на новый.
Рекомендации по редиректу от Google:
- Добавить ресурс в Search Console.
- Проверить наличие редиректа 301 со всех страниц на новый сайт (редирект страницы с http на https).
- Использовать сервис «Изменение адреса в настройках».
Редирект с http на https поможет в продвижении сайта только тогда, когда с вашим ресурсом все в порядке. А узнать, все ли хорошо с вашим сайтом, поможет наш аудит.
Оставить заявку
Как настроить редирект с http на https через htaccess
Наиболее популярный сервис Apache предлагает эффективные решения для пользователей, избавляющие от необходимости обращаться в глобальный конфиг httpd. conf). Для этого применяется файл дополнительной конфигурации .htaccess, размещенный в каталоге ресурса. Именно этот файл позволяет выполнить удобную настройку редиректа с http на https.
Для этого можно использовать разные текстовые редакторы типа vim, nano, mcedit др. В файле нужно прописать:
RewriteEngine On
RewriteCond %{HTTPS} !=on
Если редирект не заработал, можно использовать еще один способ настройки через htaccess:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
В этом случае работает правило Redirect 301 (при запросе доступа к странице на версии http сервер будет выдавать ответ о ее переезде на адрес с https). После изменения файл нужно сохранить.
Проверка редиректа
Так же, вы можете воспользоваться одним из онлайн-сервисов, которые позволяют просмотреть правильность выполнения редиректа. Например, Redirect Checker. Для выполнения проверки вам нужно:
- 1.Перейти на страницу онлайн-сервиса по этой ссылке
- 2.В поле для ввода указать адрес, с которого должно осуществляться перенаправление в формате http://имя-сайта.ру .
- 3.А затем нажать на кнопку «Analyse».
В результате сервис вам выдаст отчет о правильности работы перенаправления. В моем случае редирект работает не правильно:
Перенаправление вроде бы как происходит, но это происходит несколько раз, и почему то происходит не 301 редирект, а 302. Насколько я поняла, это называется циклический редирект, и такого быть не должно. Поэтому мне нужно пробовать другие варианты.
Так же, вы можете проверить правильность выполнения редиректа для конкретной поисковой системы. Для этого, перед нажатием на кнопку «Analyse», нужно выбрать из выпадающего списка название нужного поискового робота:
После того, как вы добавите свой сайт с протоколом HTTPS в поисковые системы, укажите основное зеркало, дождетесь переиндексации и правильно настроите 301-редирект, ваш переезд на протокол HTTPS можно будет считать завершенным. Для крупного сайта такой переезд может занять от нескольких недель, до нескольких месяцев. Все будет зависеть от того, как долго яндекс будет производить склейку зеркал.
Так же, вы можете назначить 301 редирект сразу после получения и установки с SSL-сертификата, но в этом случае вы рискуете тем, что многие страницы вашего сайта могут на время выпасть из поисковой выдачи.
Я надеюсь, что данная статья поможет вам правильно настроить редирект для HTTPS –протокола и осуществить переход на SSL-сертификат с наименьшими потерями. Если данная статья вам понравилась, делайте репост в социальные сети и подписывайтесь на мою рассылку. Желаю вам успешного переезда и до встречи в следующих статьях.
С уважением Юлия Гусарь
Создание постоянной переадресации 301 через настройки и плагины CMS
В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:
-
Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.
-
Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.
-
Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».
-
Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.
Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.
Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$ RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/?
Для Битрикс кодировка будет выглядеть следующим образом:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ RewriteRule ^(.*)$ http://sng-it.ru/$1
В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.
Но настроить редирект 301 довольно просто в базовом редакторе.
Заключение
Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса
Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций
Инструментов для настройки корректной работы Permanent Redirect 301 существует достаточно много. Наиболее удобный и правильный – внесение записей в файл .htaccess. Недостаток этого метода в том, что он доступен только для веб-серверов Apache. При использовании IIS придется настраивать web.config. Для создания сложных правил переадресации более всего подходит PHP, но в этом случае без помощи программиста не обойтись. Еще одним вариантом настройки 301 редиректа может быть обращение к хостинг-провайдеру с целью подключения услуги web-форвардинга.
Заключение
Учитывая, что HTTPS становится стандартом для сайтов, важно надлежащим образом настроить соответствующие редиректы для предотвращения появления дублированного контента и перевода сайта на использование HTTPS-версии. Для создания HTTPS-редиректов требуются дополнительные действия, чтобы перенаправляемый сервер был в состоянии обработать входящие HTTPS-запросы и отправить правильный ответ о редиректе
Для создания HTTPS-редиректов требуются дополнительные действия, чтобы перенаправляемый сервер был в состоянии обработать входящие HTTPS-запросы и отправить правильный ответ о редиректе.
Существует много способов обработки URL-редиректов, и, надеюсь, эта статья помогла вам найти подходящий вариант, как сделать редирект с HTTPS на HTTP.