Как сделать редиректы в .htaccess?
В данной статье мы рассмотрим, какие редиректы и как можно сделать при помощи .htaccess
Данная инструкция актуальна для веб-серверов, работающих с Apache (на всех наших услугах хостинга они будут работать безотказно). Чтобы правила начали работать, создайте или откройте файл .htaccess, расположенный в корневой папке Вашего сайта.
Редирект с HTTP на HTTPS
После добавления одного из правил Вам необходимо сохранить данный файл и Ваш редирект будет работать корректно.
Первый вариант
RewriteEngine On # Варианты условий, раскомментируйте (удалите # в начале строк) у того варианта, который Вам подходит. Не подходящий же вариант нужно закомментировать (добавить # в начале строки) # Вариант 1 RewriteCond %{ENV:HTTPS} !on # Вариант 2 #RewriteCond %{HTTP:X-Forwarded-Proto} !https # Вариант 3 #RewriteCond %{HTTP:X-Forwarded-Port} !443 # Вариант 4 (на хостинге HostiMan он не работает, но может работать на VDS и иных окружениях).(.*)\/$ /$1 [R=301,L]
Редирект на новую страницу
Настройте перенаправление со старой страницы /old_index.php на новую /new_index.php
Redirect 301 /index.php http://yoursite.ru/index.php
Более сложные примеры правил редиректов при помощи .htaccess
RedirectMatch [status] URL-regexp URL-to-redirect
[status] — код перенаправления (30x),
URL-regexp — информация о перенаправляемом ресурсе, в том числе, с использованием регулярных выражений
URL-to-redirect — адрес перенаправления
Пример 1. Переадресация всего сайта с сохранением строки запроса
Redirect / http://yandex.ru/yandsearch?text=
Выполнится 302 редирект (по умолчанию) на поиск в Яндексе символов, введенных в адресную строку после названия Вашего сайта.
Пример 2. Переадресация конкретной страницы
Redirect 301 /hello.html http://google.ru/search?q=bye
В случае перехода на страницу http://site.ru/hello.html выполнится 301 редирект на поиск в Гугле фразы «bye».
Пример 3. Переадресация конкретных файлов.
Примечание: данный редирект может не работать на серверах с nginx, если используются расширения статических файлов.
RedirectMatch (.*)\.jpg$ http://хостинг_для_картинок$1.jpg
«Временно» (по умолчанию действует 302 редирект) переадресовываем все запросы jpeg-картинок на какой-либо бесплатный хостинг
Аналогичный код, но при помощи RewriteRule
RewriteEngine on RewriteRule (.*)\.jpg$ http://хостинг_для_картинок$1.jpg [L,R]
Пример 4. Передресация URL, в которых содержится QUERY STRING
Если у Вас имеется страница https://site.ru/page.php?page=hello&id=5 и нужно сделать её редирект, то при помощи . page\.php$ https://site.ru/redirect_to? [R=301,L]
В первой строке мы указываем, что правило будет распространятся только на запрос файла page.php
Во второй строке указываем строку запроса (query string), при наличии которой выполнится правило RewriteRule.
Когда 2 указанных RewriteCond совпадут, сработает RewriteRule, в котором указан редирект страницы page.php на URL https://site.ru/redirect_to? с кодом 301
Знак «?» в конце URL указан для того, чтобы строка запроса не передавалась на URL редиректа. Если передача необходима, то следует удалить знак «?» из URL.
Если у Вас возникнут трудности с настройкой данной редиректа обратиться в техническую поддержку нашего хостинга и наши сотрудники с радостью помогут Вам.
Зачем необходим htaccess редирект | Cloud4box
Опубликовано: 17.05.2022 в 11:07
Категории: Без рубрики
Чтобы настроить сервер, применяется файл . htaccess. В нем указываются директивы, которые говорят серверу об особенностях работы сайта.
При наличии доступа к основному конфигурационному файлу, потребность в применении .htaccess отпадает. Это обусловлено тем, что изменения в главном конфигурационном файле являются приоритетными.
Файл .htaccess предназначен для указания настроек, необходимых для оптимизации ресурса. Он используется для:
- настройки различных редиректов;
- обеспечения безопасности;
- настройки правил размещения контента;
- ускорения загрузки страниц и т.д.
Зачем необходим .htaccess и где его искать
Разобравшись с тем, что такое .htaccess, нужно сказать, что этот файл обычно располагается в корневой директории ресурса. Его расположение влияет на директивы и разделы, которые их получают.
Если .htaccess расположен в корневой директории, то указанные команды актуальны для всего ресурса. Если он расположен в папке каталога, то директивы распространяются только на него и вложенные подкаталоги. Причем для них приоритетными считаются директивы, которые находятся в .htaccess, расположенном в директории каталога.
Этот файл можно создать и самостоятельно. В процессе создания следует обязательно поставить точку перед именем файла. Потребность в этом обусловлена тем, что htaccess фактически является расширением. Для создания этого файла можно использовать любой доступный текстовый редактор. В некоторых CMS доступна возможность редактирования этого файла прямо в панели управления.
Если .htaccess еще не создан, то оптимизатору нужно об этом позаботиться. Для этого следует взять любой текстовый редактор и прописать в нем все требуемые команды. При сохранении файлу не нужно давать имя. При этом расширением нужно указать .htaccess. Созданный файл следует разместить в корневой директории или папке каталога.
Редиректы .htaccess
.htaccess редиректы – это временное перенаправление, означающее, что страница на данный момент недоступна и ее адрес в будущем может поменяться. Перед настройкой редиректов необходимо:
- удостовериться, что они нужны;
- не допустить создания более одного последовательного перенаправления, способного перегрузить сервер и снизить скорость загрузки страниц;
- в первую очередь выполнить частные перенаправления, а затем – глобальные.
Существует 4 основных редиректа:
- постраничный;
- на страницу со слешем или без него;
- для настройки основного зеркала;
- 301 на другой домен.
Постраничный редирект нужен в нескольких случаях. Во-первых, его используют, если структура сайта изменяется таким образом, что у страницы появляется новый уровень вложенности. Во-вторых, постраничный редирект нужен при удалении страницы. Он позволяет сохранить трафик. Такое перенаправление используют интернет-магазины. При удалении страницы с товаром пользователь будет перенаправлен на каталог с интересующей его товарной категорией. В-третьих, этот редирект применяется при изменении URL страницы.
Перенаправление на страницу со слешем или без него необходимо для взаимодействия с поисковыми ботами. За счет этого можно решить проблему дублей.
Для настройки главного зеркала оптимизатор должен решить, как будет указываться адрес сайта – с www или без. Для этого необходимо:
- Добавить ресурс в Я.Вебмастер в двух возможных вариантах. Яндекс самостоятельно выберет зеркало и укажет его в консоли.
- Просмотреть поисковую выдачу. Если в индексе большинство страниц ресурса указаны с www, то и главное зеркало должно быть аналогичным.
При разработке нового сайта подходят оба варианта. После определения формата адреса главного зеркала нужно указать соответствующие команды в .htaccess.
301 редирект применяется при изменении домена ресурса. Он необходим для перенаправления поисковых ботов и пользователей на новый адрес.
Синтаксис .htaccess
При создании и работе с .htaccess нужно учитывать довольно простые правила синтаксиса.
Также существуют наиболее востребованные переменные. Например, в %{HTTP_USER_AGENT} содержатся данные о браузере посетителей и их ОС. В переменной %{REMOTE_ADDR} содержится IP-адрес посетителя.
Стоит добавить, что синтаксис этого файла всегда можно найти в официальной документации Apache HTTP Server.
В заключение нужно сказать, что хостинг веб сайтов – это довольно сложная задача. Поэтому любому владельцу интернет проекта следует пользоваться услугами хостинг-провайдеров, которые предоставляют ресурсы для размещения данных на сервере. На этом хостинге будет размещаться и конфигурационный файл .htaccess. С его помощью обеспечивается управление не только настройками сайта, но и работой веб-сервера. Для этого применяются специальные директивы.
Разобравшись с тем, что такое хостинг веб сайтов, нужно подчеркнуть задачи, которые он выполняет. Хостинг используется для круглосуточного хранения файлов сайта, управления ими, изменения их свойств и т.д. Для решения этих задач хостеры предоставляют доступ к панели управления.
.htaccess — 301 редирект, новый домен
спросил
Изменено 1 год, 4 месяца назад
Просмотрено 672 раза
Я изменил доменное имя на своем веб-сайте и у меня возникли проблемы с настройкой перенаправления.
Перенаправление 301 работает только на основном домене. olddomain.com в nydoamin.com 9индекс\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /index.php [Л] ЕслиМодуль>
Я использую облачные сервисы и установил новый домен в качестве основного домена, а старый домен в качестве дополнительного домена.
- .htaccess
- перенаправление
- облачные сервисы
В корне документа старого домена вы можете сделать что-то вроде следующего, используя mod_rewrite в верхней части 9www.olddomain.com$ RewriteRule (.*)$ https://www.newdomain.com/$1 [R=301,L] ЕслиМодуль>
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
.htaccess — 301 перенаправление всего домена на новый + несколько отдельных страниц на новые URL-адреса
спросил
Изменено 3 года, 11 месяцев назад
Просмотрено 418 раз
У меня есть olddomain.com — и я хочу перенаправить на newdomain.com с помощью htaccess и 301 — это просто и работает очень хорошо для меня — если я перенаправляю весь домен.
Но в новом домене я изменил несколько URL-адресов (теперь они другие, чем в предыдущем домене), и я хочу перенаправить весь домен и несколько определенных страниц на несколько определенных страниц, и я не знаю, как совместить эти 2 условия (перенаправить весь домен и перенаправить несколько определенных страниц).
Это работает для меня
9www.olddomain.com$ RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L], и я хотел бы добавить в код некоторые конкретные перенаправления, подобные этому, но я не знаю, как это объединить, чтобы оно работало:
Redirect 301 /something/ https://newdomain.com/something-changed- новый/
Заранее спасибо за помощь.
- .htaccess
- перенаправление
- http-код состояния-301
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.