Как сделать редирект с html на без него

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

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

Для использования 301 редиректа сначала в первых строках файла .htaccess прописываются директивы, необходимые для работы модуля mod_rewrite:

Рассмотрим типичные правила перенаправлений.

Редирект с адреса с www-префиксом на адрес без www

Или же упрощенный вариант:

Редирект с адреса без www на адрес с www

Или альтернативный упрощенный вариант:

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

Склейка индексной страницы с корнем сайта

Такой тип редиректов часто доставляет проблемы в случае, если используется CMS, перенаправляющая все запросы к сайту на индексную страницу. Добавление директивы в .htaccess файл тогда приведет к циклу бесконечных перенаправлений. Самым простым выходом из ситуации будет вставка небольшого фрагмента кода в начало индексной страницы (например index.php):

Такой же редирект может использоваться и для других расширений главной страницы, таких как index.html, или например index.phtml.

Редирект с поддомена на подпапку

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

Редирект с подпапки домена на поддомен

Редирект с одних расширений файлов на другие

Редирект на другой сайт

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

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

301 Редирект динамических страниц

Все описанные выше правила справедливы и для доменов написанных кириллицей. Однако, при создании перенаправлений кириллические домены лучше заменять так называемым Punycode. Для этого можно воспользоваться одним из онлайн-сервисов конвертации WhiteWhois.

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

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

Автор статьи: Виталий Винников

Обновления на E-mail или RSS

Понравилась статья и хотите получать новые?

Проверьте также папку "Спам" для активации ссылки

Подписавшись на обновления, вы получите:
1. Эксклюзивные статьи об интернет-маркетинге, продвижении сайтов и юзабилити
2. Интервью с экспертами отрасли
Гарантируем анонимность e-mail адреса

Связанные статьи:

Я совсем запутался. Спасибо.

Кликая на первую ссылку видно, что редирект уже работает. Самостоятельно нашли решение?

В htaccess по умолчанию стоит ещё такое правило:
RewriteRule ^(.*) index.php?% [L,E=REQUEST_URI:/index.php/$1]
Может єто из-за него?

зря мой комментарий удалили… рекомендую восстановить по-хорошему. иначе отберу назад +1

И всё было хорошо пока недавно не обнаружилась одна особенность данного преобразования УРЛов.
В прошлый ап в Яндексе количество страниц увеличилось примерно в два раза. Причем их стало в два раза больше чем есть на самом деле. Просмотрев страницы в индексе увидел следующую картину. Большинство страниц в индексе имели дубли следующего вида.

Как Яндекс вышел на УРЛы без слеша? Не знаю. Скрипт сайта исправно генерирует все УРЛы со слешем в конце. Ссылки которые покупаю тоже всегда со слешем. Вероятно появились какие-то естественные беки без слеша. Но сейчас не об этом.

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

Редирект 301 переадресация

Что такое переадресация 301

Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.

с помощью HTML и PHP;

через панель управления или плагины соответствующей CMS;

при помощи специальных скриптов (программ);

на уровне хостинг-провайдера;

внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.

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

Альтернативные методы переадресации

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

Редирект 301

В каких случаях используется постоянный редирект 301

Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.

Исключение дублирующихся страниц из индекса.

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

Создание постоянной переадресации 301 через настройки и плагины CMS

В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:

Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.

Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.

Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.

Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.

Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:

Для Битрикс кодировка будет выглядеть следующим образом:

С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.

Но настроить редирект 301 довольно просто в базовом редакторе.

Настройка 301 редирект в .htaccess

Файл с расширением .htaccess – это дополнительный конфигурационный файл web-сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.

Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трех директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.

Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.

Для создания 301 редиректа перейдите в панель управления вашего сайта.

Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html, если используете WordPress). Если файл отсутствует, создайте его.

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

Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.

Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Разберем наиболее распространенные варианты создания 301 редиректа через .htaccess.

Склейка зеркал сайта (www / без www)

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

Если редирект не работает и в этом случае, попробуйте такой вариант:

Постранично

Для одной страницы

Изменение домена

В том случае. если необходимо перейти на другой домен, при этом сохранив SEO-позиции, в файл .htaccess прописывают следующее:

Редирект на страницу с другим url (без параметров)

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

Редирект для url (с параметрами)

Редирект с index.php на главную страницу

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

Редирект со страниц со слешем на без слеша (для всего сайта)

Для избегания дублей в файле .htaccess используют следующую конструкцию:

Или более короткий вариант:

Редирект со страниц без слеша на слеш (для всего сайта)

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

301 редирект с 404 Not Found

301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:

Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.

Финальный вид файла .htaccess

Пример файла htaccess, после добавления в него редиректов:

Синтаксис для регулярных выражений в .htaccess

точка заменяет произвольный символ

обозначает перечень знаков, совпадающих с буквами a, b, или с

список символов вне указанного диапазона (кроме a, b, с)

указывает на то, что предыдущий знак может повторяться 0 или больше раз

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

приводит к противоположному эффекту

заменяет любой набор символов

ищет все подстроки между кавычками

начало строки (когда используется в начале выражения)

означает конец строки

цифра, буква или подчеркивание _

заменяет любую цифру

может заменить любой знак, кроме цифры

для замены любой цифры

для всех букв от a до z в нижнем регистре

для каждой буквы от A до Z в верхнем регистре

любая буква от a до Z во всех регистрах

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

Другие способы создания переадресации 301

Через PHP

Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:

(в первой строке укажите старый url, а во второй — новый)

Второй способ - перенаправление при помощи отправки заголовков (скрипта):

ASP-редирект

Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:

ColdFusion редирект

JSP (Java) редирект

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

CGI-скрипт на PERL

Ruby on Rails

Редирект в Nginx

HTML-редирект

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

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

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

ISPmanager

Автоматическое создание переадресации

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

Generate .htaccess— для страниц, разделов сайтов, доменов.

Проверка корректности настроек 301 редиректа

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

Для автоматической проверки можно воспользоваться специальными сервисами:

программой Screaming Frog Seo Spider, способной просканировать весь сайт.

Существует ряд ошибок, которые следует избегать при настройке редирект 301:

использование перенаправлений между страницами сайта без изменения их url в ссылках;

установка временной переадресации вместо постоянной;

неправильный выбор типа редиректа;

перенаправление файла robots.txt;

непонимание разницы между rel=canonical и кодом 301;

редирект на нерелевантный контент;

переадресация, которая не приводит к 200-й странице.

Заключение

Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.

Первая строка включает обработку правил, вторая - обрезает полный путь (от корня сервера) до корня сайта.
/home/papka-s-saitom/public_html/razdel/podrazdel/ - таким был путь до RewriteBase /
/razdel/podrazdel/ - таким станет после

Давайте рассмотрим самые распространенные примеры:

1. Простой редирект

Для простого редиректа условия задавать не обязательно, только правило.

2. Реврайт без редиректа

Иногда требуется, чтобы был редирект без смены адреса, т.е. реврайт без редиректа. Для этого просто не указываем флаг редирект (R), и получаем желаемый результат, теперь по адресу news/happy получим news.html, а в адресной строке останется news/happy

3. Редирект с сохранением рейтинга страницы

Убираем у всех запросов вначале "WWW."

6. Редирект с index.php (html,htm) на главную страницу

7. Редирект с index.html на папку (удаление из строки браузера index.html)

8. Заменить все .htm файлы на .html файлы

9. Чтобы вместо page.htm загружался файл page.html

10. Переезд с одного домена на другой

11. Редирект всех файлов в папке на один файл

12. Задание типа индексной страницы (php, html, htm и другие)

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.

Проверяем доменное имя, если оно начинается с www, то сработает правило: "все, на https://%1/$1". Здесь %1 это наш домен без www (взят из условия), а $1 это адрес (взят из самого правила).

13. Убираем у всех запросов в конце index.php. Переадресуем на страницу без index.php

14. Определение кодировки, в которой сервер "отдает" файлы

15. Определение кодировки на загружаемые файлы

16. Кэширование для всех типов файлов по времени доступа

17. Кэширование для всех типов файлов по времени изменения

18. Кэширование для определённых типов файлов

19. Главная страница без дублирования

20. Редирект страниц без слэша в конце URL на слеш

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

Следующий код всегда будет добавлять слеш в адрес URL вашего сайта, что хорошо помогает в области SEO сайта.

22. Удалить слеш в конце

24. Редирект URL страницы с папки в корень сайта

25. Редирект от GET параметров

Например, нужно что бы со страницы /?action=page&id=15 был редирект на /page/15/

26. Редирект на мобильную версию сайта

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

Второй строкой проверяем что мы находимся на нужном домене (т.к. пример не универсальный)

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

27. Редирект на мобильную версию сайта (Универсальная версия)

28. Обработка ошибок Apache

29. Сохранение (загрузка) файлов вместо открытия

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

31. Редирект с поддомена на основной домен второго уровня

32. Изменяем переменные php и передаём обработку другому скрипту.

В этом примере запрос вида: index.php ? parameter=some
преобразуется в: parameter.php ? some

33. Убираем переменные php из запроса

(вырезаем из URI всё, что находится после знака вопроса)

34. Заперт входа на сайт

Запрещаем вход на сайт Интернет Експлореру (вернее, кто себя так определяет) и пользователям с определённого IP-адреса (xxx.xxx.xxx.xxx).

35. Закрываем от всех

36. Закрываем конкретный файл от всех

37. Разрешаем доступ только с одного ip

38. Запрещаем доступ с конкретных ip

39. Убираем из Урла (URL) расширение файла

php можно заменить другим расширением. Например: html, htm, shtml, asp

40. При запросе файла .htaccess говорим, что он не существует (410, GONE).

41. Запрещаем отображать содержимое директории, если нет индексного файла

Вы скорее всего хоть раз видели текст Index of и список файлов. Так происходит в том случае, когда в директории нет индексного файла (например index.php), а система предлагает выбрать файл для дальнейшего открытия. Минус этого заключается в том, что случайный пользователь может увидеть список и содержание всех файлов директории.

43. Редиректы в зависимости от времени

Когда нужно применять уловки типа содержания зависящего от времени масса вебмастеров все ещё используют CGI скрипты которые производят редиректы на специальные страницы. Как это может быть сделано через mod_rewrite?

Есть много переменных названных TIME_xxx для условий редиректа. В связке со специальными лексикографическими образцами для сравнения STRING и =STRING мы можем производить редиректы зависящие от времени:

Это выдает содержимое foo.day.html при запросе URL foo.html с 07:00 до 19:00 а в оставшееся время содержимое foo.night.html.

44. Редирект в URL с подчеркивания в дефис

45. Редирект в URL с больших символов на маленькие

46. Массовый редирект новых файлов

Предположим вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа.

old_id INT new_url VARCHAR (255)

Далее пишем код который свяжет ваши старые id с новыми URL-ами
После этого, добавляем следующую строчку в .htaccess:


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

Оглавление

Самый главный файл .htaccess располагается в корне сайта:

Через файл .htaccess чаще всего настраивают 301 редиректы на уровне сервера, что сильно ускоряет процесс перехода на новую страницу, т.к. не надо загружать промежуточную страницу. Также здесь прописывается какой файл обрабатывает 404 એ ошибку.

Чуть ниже мы рассмотрим все распространенные варианты редиректов через .htaccess , а для начала ознакомимся с опциями и правилами.

Чтобы иметь возможность работать с редиректами нужно включить модуль ReWriteEngine. Для этого необходимо прописать две строчки кода (желательно в самом верху файла .htaccess ):

Разместите эти строки в самом верху файла .htaccess , чтобы иметь возможность работать с директивами модуля mod_write.

Также на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).

1. Правила Redirect, RewriteRule и RewriteCond

1.1. Директива Redirect

Redirect устанавливает прямой редирект с одной страницы на другую.

В status пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.

Можно также писать по другому

1.2. Директива RewriteRule

Директива RewriteRule устанавливает правила перехода. Синтаксис следующий:

1.3. Директива RewriteCond

Директива RewriteCond определяет условия при котором выполняется правила в RewriteRule.

Например, этими условиями могут быть браузер пользователя, IP-адрес, заголовок и т.д.

1.4. Директива RedirectMatch

Директива RedirectMatch аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения.

2. Примеры 301 редиректов в .htaccess

Мы уже рассматривали множество примеров с редиректом по .htaccess в статьях:

Здесь мы дополним варианты редиректов, которых еще не было.

2.1. Редирект с одной страницы на другую

Или второй вариант:

2.2. Редирект со всех файлов .htm на .html

Или второй вариант:

2.3. Редирект всего каталога на другую страницу

С любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php

2.4. Удаление лишних слэшей в адресе URL

Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект

2.5. Реврайт без редиректа

Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy

2.6. Простановка замыкающего слеша в конце адреса главной страница

2.7. Удаляем директорию каталога из URL

Или второй вариант:

2.8. Редирект GET параметров

Например, сделать редирект со страницы /?act=page&id=2 на /page-2/

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

2.10. Редирект с поддомена

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

3.2. Запретить конкретный файл

Запретим для всех файл disable_file.html:

3.3. Разрешить доступ с одного ip

Доступ будет разрешен только с одного ip-адреса 172.111.222.55

3.4. Запретить доступ с разных ip

Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

3.5. Редирект в URL с больших символов на маленькие

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

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

Для отправки комментария вам необходимо авторизоваться.

Ограничение ответственности

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

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

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

Читайте также: