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

Редиректы htaccess — перенаправления страниц, сайта

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

Есть несколько основных редиректов:

301 — Moved Permanently (перемещено навсегда)
302 — Moved Temporarily (перемещено временно)
303 — See Other (смотреть другое).

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

Редиректы в примерах будут прописываться в файле конфигурации Apache — .htaccess. Для работы перенаправлений на сервере должен быть включен модуль mod_rewrite (с этим проблем как правило нет).

GET.*index\.php [NC] RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]

3. Перенаправление страниц без слеш, на страницы со слешем:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteRule (.+) $1/ [R=301,L]

В таком варианте слеш будет добавлен ко всем урлам, кроме тех, где есть вконце .html, или уже добавлен слеш

А вот так для всех страниц где уже есть слеш, или .html, или id с любым числом (id5465, id54444 и т.д.). Удобно использовать, если нужно закрыть слешем категории, а страницы оставить без слеша.. если в урлах страниц есть что то общее

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.
(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вообще вариантов проверки на https есть много вариантов, поискать можно в phpinfo(), но бывают варианты когда любая проверка, редирект приводят к ошибке «ERR_TOO_MANY_REDIRECTS». Если ничего не помогает, попробуйте в самое начало .htaccess добавить:

SetEnvIf X-SSL-Emu on HTTPS=on

<в процессе>

Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?

Что нужно изменить в приведенных ниже примерах?

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

Перенаправление всех URL-адресов на новый сайт

В следующих двух примерах все URL-адреса вашего текущего веб-сайта перенаправляются на второй веб-сайт. Это полезно после переноса вашего сайта на новое доменное имя. www.example.com$ RewriteRule (.*)$ https://www.dreamhostexample.com/$1 [R=301,L]

Перенаправление одного URL-адреса

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

Перенаправление на файл локального сайта

Redirect /path/to/old/file/old.html /path/to/new/file/new.html

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

Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html

Первый путь

Первый путь к старому файлу должен быть локальным путем UNIX, а не полным путем. Итак, если файл .htaccess находится в каталоге /example.com , вы бы не включали /home/username/example. index\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

    Источник: help.dreamhost.com

    • Комментарии

    (Старый веб-хостинг) Перенаправьте свой веб-сайт с помощью .htac…

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

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

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


    Создайте файл .htaccess

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

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

    Обратите внимание: Добавление или редактирование файла .htaccess может напрямую повлиять на производительность вашего сайта. Малейшая опечатка может привести к ошибкам при посещении вашего сайта.

     

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


    Перенаправить ваш сайт с помощью файла .htaccess

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

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


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

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

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

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

    • Вторая строка выполняет простое действие: используя переадресацию 301, перенаправлять посетителей с моего сайта на адрес https://transiptutorials.com.

    Перенаправление 301 заставляет поисковые системы индексировать URL-адрес, на который вы перенаправляетесь.

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

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

     

    • Первая строка начинается с символа  , указывающего, что делает строка ниже. Текст после #  Символ не является активной частью файла .htaccess.
    • Вторая строка выполняет простое действие: с помощью переадресации 302 перенаправлять посетителей с моего веб-сайта на адрес https://transiptutorials.com.

    Перенаправление 302 заставляет поисковые системы в первую очередь индексировать исходный URL-адрес.

     


    Загрузите файл .htaccess

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

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

    В приведенном ниже примере мы перенаправляем наш веб-сайт на transiptutorials.com с помощью перенаправления 301. Затем мы загружаем этот файл с помощью управления файлами SFTP в панели управления. Вы также можете использовать для этой цели программное обеспечение SFTP, такое как Filezilla или Cyberduck.



    Шаг 1

    Сначала вам нужно создать простой текстовый файл (мы рекомендуем использовать Notepad++). Добавьте строку из одного из приведенных выше методов перенаправления и сохраните файл как 9.0016 .htaccess

     (не забудьте поставить точку и ввести URL-адрес, на который вы хотите перенаправить).



    Шаг 2

    Теперь войдите в свою панель управления и перейдите на вкладку Домены и хостинг вверху.

    Выберите свое доменное имя слева и нажмите на шестеренку рядом с « Ваш веб-сайт ».



    Шаг 3

    Поскольку мы хотим, чтобы .htaccess применялся к нашему основному домену (transiptutorials.com), мы открываем ‘ www ‘каталог.

    Здесь нажмите кнопку « Загрузить » и откройте файл .htaccess, чтобы загрузить его. Вот и все! Теперь посетители вашего веб-сайта будут перенаправлены на URL-адрес, указанный вами в файле .htaccess.

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

     

    Например, если вы создали два файла .htaccess с перенаправлением 301, каждый из которых содержит разные URL-адреса. Вы загружаете один файл .htaccess в каталог « www », а другой файл .htaccess — в каталог « blog », который находится внутри каталога « www ».

     

    Перенаправление 301 в каталоге « www » будет применяться к каталогу « www » и всем его подкаталогам, но не применяется к блогу « ».’ каталог и его подкаталоги. Для последних каталогов применяется только перенаправление 301 внутри каталога «

    blog ».



    В этой статье мы объяснили, как перенаправить веб-сайт на ваш пакет веб-хостинга с помощью файла .htaccess.

    Если у вас есть какие-либо вопросы по этой статье, обратитесь в нашу службу поддержки. Вы можете связаться с ними с помощью кнопки « Свяжитесь с нами » ниже или с помощью кнопки « Связаться с нами » внутри вашей панели управления.

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

    Веб-перенаправление через .htaccess — Cloud Studio

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

    О .htaccess

    Использование .htaccess для веб-перенаправления — устаревший подход. Как будто все начали водить электронные автомобили, но у нас все еще есть наша старая бензиновая машина в нашем гараже. Однажды мы залили в него немного бензина и обнаружили, что он все еще работает очень хорошо. Точно так же, хотя мир переходит на PaaS и SaaS, эта технология IaaS по-прежнему работает очень хорошо. Поэтому мы решили создать эту статью как специальный «гараж» для нашего метода веб-перенаправления на основе .htaccess.

    В отличие от веб-перенаправления через AWS Route 53, предварительным условием использования файла .htaccess для перенаправления является наличие учетной записи веб-хостинга (где веб-сервер запускает Apache). Другими словами, нам нужно иметь хостинг, где мы можем хранить файл . htaccess. Затем, отредактировав содержимое файла .htaccess, мы можем указать веб-серверу перенаправить веб-трафик в пункт назначения. Пункт назначения может быть либо другим URL-адресом на самом веб-сайте, либо другим веб-сайтом, как показано ниже.

    В мире IaaS, когда у нас есть HTTP-сервер Apache в качестве нашего веб-сервера, мы можем использовать основной файл конфигурации (т. е. http.conf) для хранения наших параметров конфигурации директивы. Но иногда у нас нет разрешения на доступ к этому основному файлу конфигурации, например, в ситуации «один сервер — несколько веб-сайтов». В этом случае мы можем использовать файл .htaccess, чтобы переопределить параметры центральной конфигурации для определенного каталога. Таким образом, .htaccess также известен как «распределенный файл конфигурации».

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

    В файле .htaccess можно настроить множество директив. Однако разрешены не все директивы Apache. Самый быстрый способ узнать, разрешена ли конкретная директива в файле .htaccess, — это проверить атрибут Context на справочной странице этой директивы. Если «.htaccess» указан в строке контекста, как показано ниже, это означает, что мы можем использовать эту директиву в файле .htaccess.

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

    Практика

    Чтобы настроить файл .htaccess веб-сайта, нам сначала нужно получить доступ к каталогу веб-хостинга. Канал доступа может различаться в зависимости от хостинг-провайдеров. Обычно мы можем получить доступ к каталогу через SFTP или интерфейс командной строки. Предположим, мы хотим настроить .htaccess для перенаправления HTTP на HTTPS, и мы хотим получить доступ к файлу через клиентское приложение SFTP. Шаги, как показано ниже:

    1. Запустите клиентское приложение SFTP, а затем введите адрес сервера и учетные данные для входа.

    2. После подключения найдите файл .htaccess в каталоге веб-файлов. Если существует файл .htaccess, следуйте 3a и далее; если существующий .htaccess не найден, следуйте 3b и далее

    3a. Загрузите файл .htaccess и откройте его в редакторе текста/кода
    4a. Добавьте следующий код после 9https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


    5а. Сохраните текстовый файл и назовите его файл temp.txt
    6a. Загрузите файл в корень документа, например. папку public_html и переименуйте ее в .htaccess

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

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

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

    Ссылка

    В дополнение к приведенному выше примеру перенаправления существует ряд других сценариев перенаправления. Ниже мы сгруппировали код конфигурации по mod_alias и mod_rewrite.

    Директивы mod_alias

    В модуле Apache mod_alias директивы Redirect и RedirectMatch часто используются для веб-перенаправления. Сценарии и примеры кода сопоставления приведены ниже:

    Перенаправление в пределах одного веб-сайта

     
     #Перенаправить весь сайт А во вложенную папку
    Редирект 301 "/" "http://www.
    websiteA.com/subfolder/"
     
     # Перенаправить подпапку X веб-сайта A в подпапку Y
    Перенаправление 301 "/subfolderX" "/subfolderY"
     
     
     #Перенаправить веб-сайт А со страницы 1 на страницу 2
    Перенаправление 301 "/subfolderX/page1.html" "/subfolderY/page2.html"
     
     
     # Перенаправить txt-файлы веб-сайта А в html-файлы
    RedirectMatch 301 "(.*)\.txt$" "$1.html"
     
     
     #Повторное использование параметров URL в перенаправлении
    RedirectMatch 301 "/page1.php?id=(.*)&tag=(.*)$" "/$1/$2"
     

    Перенаправление на другой веб-сайт

     
     #Перенаправить сайт А на весь сайт сайта Б
    Редирект 301 "/" "http://www.websiteB.com/"
     
     
     # Перенаправить подпапку X веб-сайта A в подпапку Y веб-сайта B
    Перенаправление 301 "/subfolderX" "http://www.websiteB.com/subfolderY"
     
     
     # Перенаправить txt-файлы веб-сайта А на html-файлы веб-сайта Б
    RedirectMatch 301 "(.
    *)\.txt$" "http://www.websiteB.com/$1.html"

    Обратите внимание, что кавычки необязательны, если только в какой-либо части URL-адреса нет пробела. А «301» представляет собой постоянное перенаправление. Мы можем заменить его на «302» (представляющий временное перенаправление) или другие коды состояния HTTP 3xx. Дополнительные сведения см. в разделе Определения кодов состояния — перенаправление 3xx.

    Директивы mod_rewrite

    По сравнению с директивами mod_alias, директивы mod_rewrite обеспечивают более гибкий и мощный способ веб-перенаправления. Например, он поддерживает неограниченное количество правил, и каждое правило может иметь неограниченные условия правила. Сценарии и примеры кода сопоставления в этом модуле перечислены ниже.

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

    9/$» «/index-for-standard.html» [L]
     
     #Перенаправление доступа с несуществующих страниц на главную страницу
    RewriteCond "%{REQUEST_FILENAME}" "!-f "
    RewriteCond "%{REQUEST_FILENAME}" "!-d"
    Правило перезаписи "." "/index.php" [L]
     

    Перенаправление на другой веб-сайт

     
     #Перенаправить весь сайт А на сайт Б с сохранением того же пути
    RewriteRule "(.*)" "http://www.websiteB.com/$1" [R=301,L]
     
     
     #Перенаправление веб-сайта А на домашнюю страницу веб-сайта Б целиком
    RewriteRule "(.*)" "http://www.websiteB.com/" [R=301,L]
     9(.*)" "http://www.websiteB/%1" [R=301,NC]
     
     
     #Перенаправить поисковый запрос веб-сайта А в Google
    RewriteCond "%{REQUEST_URI}" "/search/(.*)" [NC]
    RewriteRule "(.*)" "http://www.google.com/search?q=$1" [R,NC,L]
     

    Сводка

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

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

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