Переадресация с одного сайта на другой через htaccess: Редирект через .htaccess | REG.RU

Как сделать редирект с одной страницы на другую

Навигация по статье:

Что такое redirect?
Универсальный редирект htaccess
Редирект для WordPress
Редирект для ModX
Редирект для Opencart
Редирект для Битрикс

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

Для кого-то фраза “команда веб-серверу” может прозвучать страшно, но на деле это делается очень легко, и с вероятностью 90% Вы справитесь самостоятельно. Конечно, не без помощи этой инструкции.

Сейчас, чаще всего, редирект делают для SEO (склеивают домены или страницы) или заработка (тоже склеивают, но для того, чтобы получить “ранг” и ссылочную массу предыдущего домена для последующей продажи). Очень часто, при изменении структуры сайта, мы меняем URL адреса, но вот поисковый робот об этом не знает и посылает людей (из поисковой сети Яндекс, Google и т.п) на старый адрес страницы. А их не существует. Естественно, что пользователи уходят, поисковая сеть это замечает и выплевывает страницы из индекса. Итог: Вы остаетесь без трафика и нужно заново проиндексировать те же самые страницы, хотя у них поменялся только URL адрес.

URL адрес – это указатель размещения страницы в интернете, который содержит доменное имя и путь к файлу страницы. Например: vk.com или vk.com/groups.

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

  • “300” Multiple Choices (несколько вариантов на выбор).
  • “301” Moved Permanently (перемещено навсегда).
  • “302” Temporary Redirect (временный редирект).
  • “303” See Other (затребованный ресурс можно найти по др. адресу).
  • “304” Not Modified (содержимое не менялось – это могут быть рисунки, таблицы стилей, скрипты, и т. д.).
  • “305” Use Proxy (доступ должен осуществляться через прокси).
  • “306” Unused (не используется).

Универсальный редирект htaccess

Это первый и самый простой способ сделать редирект на другую страницу с помощью файла htaccess. Вам необходимо зайти в панель управления хостингом и далее в раздел с файлами сайта. Также, можете воспользоваться FTP клиентом. Нам нужна главная папка сайта www/название_сайта. Здесь находим нужный файл и редактируем его как текст.

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

Открываете нужный файл и в самом конце добавьте эту строку:

Redirect 301 /services/usluga-1/ /services/zakazat_izgotovlenie_steklyannih_peregorodok/

Здесь /services/usluga-1/ это старый адрес страницы без доменного имени, а /services/zakazat_izgotovlenie_steklyannih_peregorodok/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/services/usluga-1/, а новый так http://mysite.ru/services/zakazat_izgotovlenie_steklyannih_peregorodok/.

Если по каким-то причинам Вы потерпели неудачу, давайте разбираться в задаче, учитывая особенности CMS (системы управления сайта). Доведем это дело до конца!

Как сделать редирект WordPress

Способ 1

Как и в универсальном способе, нам нужно сначала найти файл htaccess. Он находится в главной папке Вашего сайта www/mysite.ru. Перед редактированием файла делаем резервную копию, дабы в случае поломки сайта мы могли просто восстановить его работу путем загрузки старого htaccess. Открываем и вставляем в него следующие строки.

Redirect 301 /pop/band1/ http://mysite.ru/music/pop/band1/

Здесь /pop/band1/ это старый адрес страницы без доменного имени, а http://mysite.ru/music/pop/band1/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite. ru/pop/band1/, а новый так http://mysite.ru/music/pop/band1/.

Способ 2

Решение через плагин. Для ленивых, отчаявшихся или просто уставших от рутины вебмастеров.

Заходим в панель управления сайта, далее раздел “Плагины” и жмем на вверху кнопку “Добавить новый”.

Далее, на странице с новыми плагинами, воспользуемся поиском. Набираем в строке “redirection” и устанавливаем данный плагин.

Далее совершаем установку, и плагин появится в разделе “Установленные”. Находим его и жмем “Настройки”, а далее внутри (на странице плагина) выбираем вкладку “Редиректы”.

Попадаем на такую страницу, нажимаем “Добавить новое”.

Теперь, достаточно добавить старый адрес в верхнюю строку и новый в нижнюю. Все просто. Снизу мы выделили пример, по которому вы можете добавить свой редирект.

Как сделать редирект Modx

Используем все тот же любимый нами файл htaccess. Чтобы найти данный файл смотрите в раздел универсальный способ. и ?(.*).

Как сделать редирект Битрикс

Как много программистов не любят Битрикс за его специфичность, правда настройка редиректа, это не разработка дополнительного функционала и здесь делается все ОЧЕНЬ просто.

Заходим в панель управления Вашего сайта. Далее слева выбираем “Контент” и “Файлы и папки”. Пролистайте страницу ниже.

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

Нужный файл выглядит так (смотрите скриншот ниже). Перед редактированием обязательно сделайте его копию. Ибо если Вы что-то сделаете неправильно, есть вероятность поломки сайта, и вернуть его в былое состояние поможет бекап или загрузка старого файла htaccess через хостинг или ftp.

Нажмите редактировать как текст и вставляете следующие строки:

Redirect 301 /services/usluga-1/ /services/zakazat_izgotovlenie_steklyannih_peregorodok/

Здесь /services/usluga-1/ это старый адрес страницы без доменного имени, а /services/zakazat_izgotovlenie_steklyannih_peregorodok/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/services/usluga-1/, а новый так http://mysite.ru/services/zakazat_izgotovlenie_steklyannih_peregorodok/.

Если Вы прочитали статью полностью, то заметили, что универсальный метод работает в Битрикс. Это будет самый простой способ сделать редирект в Вашей практике.

Что такое htaccess, редирект через htaccess и изменение адресов с mod_rewrite

Файл «.htaccess» (с точкой в начале названия файла) — это конфигурационный файл Apache. Он позволяет изменять глобальные настройки в некоторых конкретных директориях. К примеру, делать переадресацию (редиректы), отключать обработку PHP файлов. Файл «.htaccess» — это текстовый документ, который можно изменить в любом текстовом редакторе. Обычно на хостингах данный файл изначально присутствует в корневой папке сайта. Но вы можете создать несколько файлов «.htaccess» в любых подпапках. Тогда правила будут перезаписываться.

Простой редирект через .htaccess


Разберём одну из самых популярных задачу, которую возлагают на файл «.htaccess» — это переадресация посетителя сайта на другую страницу. Откройте файл .htaccess в корневом каталоге сайта и в самом начале, первой строчкой напишите:

Redirect 301 / https://mousedc.ru


301 означает, что во время перенаправления пользователя сервер выдаст код ответа 301-«Permanent Redirect», что означает, что документ перенесён на новый навсегда.

Некоторые возможные HTTP статусы:
301 — документ перемещен постоянно
302 — документ перемещен временно
303 — смотрите другой документ
403 — документ запрещён к просмотру
404 — документ не найден
410 — документ убран


Слеш «/» после 301 означает, что перенаправление будет срабатывать в любом случае, к какой бы странице или файлу не обратился пользователя. Если вместо слеша поставить адрес файла, к примеру:

Redirect 301 /folder/page1.php https://mousedc.ru


— то будет происходить переадресация только в том случае, если пользователь запросит страницу «/folder/page1.php».

Последним параметром для Redirect стоит адрес страницы, на которую будет сделано перенаправление. В примере это «https://mousedc.ru».

Редирект с регулярным выражением через .htaccess


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

RedirectMatch 301 (.*) https://mousedc.ru$1 


Чтобы понять, что происходит в этом коде, рекомендуем прочитать все статьи о регулярных выражениях, начиная с Регулярные выражения в PHP. Если кратко, то образуется карман (. product/([0-9]+)/?$ product/index.php?id=$1 [L]



При таком правиле пользователь будет заходить на страницу mousedc.ru/product/5/, а сервер будет возвращать содержание страницы mousedc.ru/product/index.php?id=5.

В конце правила можно заметить квадратные скобки. В эти скобки [ ] ставятся флаги. Можно поставить один флаг, к примеру, [L] и несколько флагов через запятую [NC,R=301,L]. Приведём значения самых популярных из них:

  • R — вызывает редирект. Можно казать после этого флага код ответа сервера, например [R=301]
  • L — останавливает процесс изменения адреса. Означает, что следующие RewriteRule после этой строчки не будут выполнены
  • N — перезапускает преобразование адреса заново, начиная с первого правила. Но на этот раз подставляется адрес, изменённый в процессе проделанных преобразований. Будте осторожны, чтобы не сделать бесконечный цикл
  • C — если следующее после этого правило не выполняется, то преобразование будет прервано. products/(.*)$ /products.php [L,R=301]


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

    Была ли эта статья полезна?

    Есть вопрос?

    Закажите недорогой хостинг

    Заказать

    всего от 290 руб

    Как перенаправить мой сайт с помощью файла .htaccess?

    Последнее изменение: 6 марта 2020 г.

    Обзор

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

    ПРОЧИТАЙТЕ ПЕРВЫМ

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

    Поскольку . htaccess является скрытым системным файлом, убедитесь, что ваш FTP-клиент настроен на отображение скрытых файлов. Обычно это опция в настройках/параметрах программы.

    Эта статья предоставлена ​​в качестве любезности. Установка, настройка и устранение неполадок сторонних приложений не входят в объем поддержки, предоставляемой (mt) Media Temple. Пожалуйста, найдите минутку, чтобы просмотреть Заявление о поддержке.

    Инструкции

    1. Создайте пустой текстовый файл с помощью текстового редактора, например блокнота, и сохраните его как htaccess.txt.

    ПРИМЕЧАНИЕ:

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

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

    301 (Постоянный) Перенаправление:

    Используйте перенаправление 301 .htaccess, чтобы постоянно указывать всему сайту другой URL-адрес. Это наиболее распространенный тип перенаправления, который полезен в большинстве ситуаций. В этом примере мы перенаправляем на домен «example.com».

    При добавлении следующего в файл .htaccess вашего веб-сайта обязательно замените example.com своим собственным доменным именем.

     # Это позволяет вам перенаправить весь ваш сайт на любой другой домен.
    Перенаправление 301 / http://example.com/
     
     
    302 (Временный) Перенаправление:

    Укажите для всего сайта другой временный URL-адрес. Это полезно для целей SEO, когда у вас есть временная целевая страница и вы планируете вернуться к основной целевой странице позже:

     # Это позволяет перенаправить весь ваш веб-сайт на любой другой домен.
    Перенаправление 302 / http://example. com/
     
     
    Перенаправить index.html в определенную подпапку:
     # Это позволяет перенаправить index.html в определенную подпапку
    Перенаправить /index.html http://example.com/newdirectory/
     9/?$ /папка2/
     

     
    Перенаправление на определенную индексную страницу:
     # Предоставить конкретную индексную страницу (установить обработчик по умолчанию)
    DirectoryIndex index.html
     
     
    Перенаправить сообщение об ошибке:

    Вместо запроса страницы с ошибкой 404 Not Found сайт перенаправит на домашнюю страницу:

     # Перенаправить страницы с ошибкой 404 на домашнюю страницу 
    ErrorDocument 404 http://example.com /
     
    Перенаправить несуществующую страницу на index.php
     # Перенаправить несуществующие страницы на index.php 
    Options +SymLinksIfOwnerMatch RewriteEngine включен RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /index. php [L]

    3. Загрузите этот файл и переименуйте его в .htaccess .

    ПРИМЕЧАНИЕ:

    • При использовании текстового редактора обязательно сохраните файл как обычный текст.
    • Пути сохранения этого файла можно найти в этой статье: Системные пути.
    • Полное руководство по директивам Apache, которые можно использовать в файлах .htaccess, можно найти здесь: http://httpd.apache.org/docs/mod/core.html.

    Более мощные изменения URL-адресов с помощью mod_rewrite

    Если вам нужно внести сложные изменения в способ отображения вашего URL-адреса, вам следует посетить Использование правил перезаписи .htaccess. Вы можете добавить «www» в начало URL-адреса, перенаправить все запросы во вложенную папку, но оставить остальную часть URL-адреса и т. д.

    См. также

    apache — перенаправить один URL-адрес на другой URL-адрес с помощью .

    htaccess

    спросил

    Изменено
    1 год, 11 месяцев назад

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

    Поскольку я пытаюсь перенаправить один полный URL-адрес

     http://www.domain-name.com/download/?page=download
     

    На этот URL

     http://www.domain-name.com/download/show
     

    Чтобы это работало, я добавил этот код

     rewriterule http://www.domain.com/download/?page=download(.*)$ http://www.domain.com/download/show$1 [ г=301,нк]
     

    Но это не работает, и вместо этого он говорит, что URL-адрес, который я запрашиваю, говорит «Запрещено».

    Кто-нибудь может дать какое-нибудь решение для этого.

    • апач
    • .htaccess

    1

    Перенаправление одного URL-адреса на другой URL-адрес с помощью файла htaccess:

     Перенаправление 301 /en/php/project. html http://www.example.org/newpage.html
     

    RewriteRule не включает строку запроса и не включает http-хост. Кроме того, первый аргумент — это шаблон регулярного выражения. Без http-хоста вам будет соответствовать либо download/page=download(etc) , либо downloadpage=download(etc) .

    Вам понадобятся 2 правила. Тот, который перенаправляет уродливый URL-адрес на красивый URL-адрес. Одно правило должно переписать хороший URL-адрес на реальный рабочий URL-адрес: 9скачать/показать/?$ скачать/?page=download [QSA,END]

    Второе правило использует флаг QSA, что означает, что исходная строка запроса будет добавлена ​​к строке запроса в модуле перезаписи. Флаг END останавливает любую перезапись, так как L-флаг не делает этого в контексте .htaccess. END доступен только начиная с Apache 2.3.9 и вызовет внутреннюю ошибку сервера, если используется в более ранней версии. Обратите внимание, что вам, вероятно, придется изменить второе правило, чтобы оно указывало на реальный файл.

    This entry was posted in Популярное