Redirect

🏠 | 💻 PC | Web |

Переадресация внутри сайта с помощью .htaccess

↓ Содержание статьи ↓
Введение
Как сделать переадресацию
Как сделать несколько редиректов
Решение проблем

Введение

Прежде, чем заниматься переадресацией, нужно выяснить тип сервера, на котором размещён Ваш сайт.

Файл .htaccess вносит изменения в работу сервера Apache

В Nginx похожой цели служит файл nginx.conf суть там та же, но синтаксис немного другой.

Простая постоянная переадресация 301

Чтобы перенестри страницу с одного адреса на другой на постоянной основе вносите в .htaccess следующие изменения:

RewriteEngine on Redirect 301 old_url http://адрес_новой_страницы

Где old_url это адрес_старой_страницы_относительно_корня_сайта

Если ваш сервер это Apache, a файла .htaccess у Вас нет, можете создать его самостоятельно и поместить, например, в корневую директорию.

Пример

RewriteEngine on Redirect 301 /old_dir/url1.php /new_dir/url1.php Redirect 301 /old_url1.php /new_url.php Redirect 301 /old_url2.php /new_dir/new_url.php

Можно сделать переадресацию целой директории

RewriteEngine on Redirect 301 /old_dir /new_dir

Два редиректа

Если вы делаете два редиректа, которые влияют на какую-то страницу, например перенаправляете целую директорию, и ещё дополнительно что-то меняете внутри - нужно делать это аккуратно

Допустим было:

/old_dir/a.php
/old_dir/b.php
/old_dir/page.php

А теперь нужно:

/new_dir/a.php
/new_dir/b.php
/new_dir/new_page.php

Для переадресации a.php и b.php достаточно создать правило

Redirect 301 /old_dir /new_dir

А вот чтобы правильно перенаправить с.php в new_page.php нужно мысленно представить, куда перенаправится старый с.php с учётом нашего редиректа Redirect 301 /old_dir /new_dir

Как вы наверное и сами догадались, перенаправится он из

/old_dir/page.php

в

/new_dir/page.php

И уже вот этот несуществующий /new_dir/page.php нам нужно перенаправить в

/new_dir/new_page.php

Поэтому правило будет выглядеть следующим образом

Redirect 301 /old_dir /new_dir Redirect 301 /new_dir/page.php /new_dir/new_page.php

Дебаг

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

У хостинга Beget которым я пользуюсь, и вам могу порекомендовать - логи с ошибками доступа лежат в файле sitename.xx.error.log

Когда я хочу проверить, что не так - я логинюсь на хостинг по ssh захожу к себе в public_html и делаю

tail -n 100 eth1.ru.error.log

Так я вижу последние 100 строк сегодняшнего лога. И если бы там было

… script '/home/xxx/eth1.ru/public_html/new_dir/page.php' not found or unable to start, referer heihei.ru

Я бы понял, что не настроена переадресация со старого page.php на новый new_page.php и добавил бы строку

Redirect 301 /new_dir/page.php /new_dir/new_page.php

В .htaccess

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

Также советую изучить команды Bash

Роботы:
207.46.13.56 bing

Похожие статьи:

🖽 Html
🖌 CSS
Joomla
UTM-метки
URLencode
↬ Переадресация страниц сайта
↔ Адаптивный дизайн сайтов
Настройка почтового ящика на Яндекс
Какой хостинг выбрать
Как перенести сайт
Яндекс Метрика
Разница между POST и PUT
Word Press
SEO
Тестирование сайта
A numeric character reference expanded to the C1 controls range.
JavaScript
.webp
Flask
Django
Как указать каноническую страницу сайта

Автор статьи: Андрей Олегович