Переадресация внутри сайта с помощью .htaccess
🏠 | 💻 PC | Web |
Введение | |
Как сделать переадресацию | |
Как сделать несколько редиректов | |
Решение проблем |
Введение
Прежде, чем заниматься переадресацией, нужно выяснить тип сервера, на котором размещён Ваш сайт.
Файл .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
Как вы наверное и сами догадались, перенаправится он из
/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 andreyolegovich.ru.error.log
Так я вижу последние 100 строк сегодняшнего лога. И если бы там было
… script ‘/home/xxx/andreyolegovich.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 | ||
Как указать каноническую страницу сайта |
- Поиск по сайту
- aofeed — Telegram канал чтобы следить за выходом новых статей
- aofeedchat — задать вопрос в Телеграм-группе
Рекомендую наш хостинг beget.ru |
Пишите на [email protected] если Вы: |
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык. |
2. Хотите разместить на сайте рекламу, подходящуюю по тематике. |
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение — пожалуйста свяжитесь с нами по электронной почте |
4. Нашли на сайте ошибку, неточности, баг и т.д. … ……. |
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: |
Переадресация внутри сайта с помощью .htaccess
🏠 | 💻 PC | Web |
Introduction | |
Как сделать переадресацию | |
Как сделать несколько редиректов | |
Решение проблем |
Introduction
Прежде, чем заниматься переадресацией, нужно выяснить тип сервера, на котором размещён Ваш сайт.
Файл .htaccess вносит изменения в работу сервера Apache
В Nginx похожой цели служит файл nginx.conf суть там та же, но синтаксис немного другой.
Простая постоянная переадресация 301
To перенестри страницу с одного адреса на другой на постоянной основе вносите в .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/c.php
А теперь нужно:
/new_dir/a.php
/new_dir/b.php
/new_dir/new_c.php
Для переадресации a.php и b.php достаточно создать правило
Redirect 301 /old_dir /new_dir
А вот чтобы правильно перенаправить с.php в new_c. php нужно мысленно представить, куда перенаправится старый с.php с учётом нашего редиректа Redirect 301 /old_dir /new_dir
Как вы наверное и сами догадались, перенаправится он из
/old_dir/c.php
в
/new_dir/c.php
И уже вот этот несуществующий /new_dir/c.php нам нужно перенаправить в
/new_dir/new_c.php
Поэтому правило будет выглядеть следующим образом
Redirect 301 /old_dir /new_dir
Redirect 301 /new_dir/c.php /new_dir/new_c.php
Дебаг
Если у вас возникли какие-то проблемы с переадресацией, первое что советую сделать — зайти на хостинг и почтитать логи.
У хостинга Beget которым я пользуюсь, и вам могу порекомендовать — логи с ошибками доступа лежат в файле sitename. xx.error.log
Когда я хочу проверить, что не так — я логинюсь на хостинг по ssh захожу к себе в public_html и делаю
tail -n 100 aredel.com.error.log
Так я вижу последние 100 строк сегодняшнего лога. И если бы там было
… script ‘/home/xxx/aredel.com/public_html/new_dir/c.php’ not found or unable to start, referer heihei.ru
Я бы понял, что не настроена переадресация со старого c.php на новый new_c.php и добавил бы строку
Redirect 301 /new_dir/c.php /new_dir/new_c.php
В .htaccess
Подробнее про работу с логами читайте в моей статье про тестирование
Также советую изучить команды Bash
Роботы:
207.46.13.56 bing
Related Articles:
🛠 | Полезные советы | |
🖽 | Html | |
🖌 | CSS | |
Joomla | ||
UTM-метки | ||
URLencode | ||
↬ | Переадресация страниц сайта | |
↔ | Адаптивный дизайн сайтов | |
Настройка почтового ящика на Яндекс | ||
Какой хостинг выбрать | ||
Как перенести сайт | ||
Яндекс Метрика | ||
Разница между POST и PUT | ||
Word Press | ||
SEO | ||
Тестирование сайта | ||
A numeric character reference expanded to the C1 controls range. | ||
JavaScript | ||
.webp | ||
Flask | ||
Django | ||
Как указать каноническую страницу сайта |
- Search on this website
- aofeed — Telegram channel for updates
- aofeedchat — Telegram group for questions
Share in social media: |
apache2 — .htaccess перенаправить подпапки на соответствующий index.php
спросил
Изменено 1 год, 2 месяца назад
Просмотрено 5к раз
Как я могу перенаправить каждый запрос для подпапки на index. php в той же папке
myserver.com/folder/subfolder1/test перенаправлен в папку/subfolder1/index.php myserver.com/folder/subfolder2/test перенаправлен в папку/subfolder2/index.php ... 9.*$ index.php [L,QSA]
Я хотел бы перенаправить их одним .htaccess в родительскую папку:
Папка/ .htaccess <-- здесь одно перенаправление подпапка1/ index.php подпапка2/ index.php подпапка3/ index.php ... подпапка н/ index.php
П.С. : все вложенные папки имеют разные имена и не соответствуют соглашению об именах.
- .htaccess
- apache2
Вам просто нужно убедиться, что DirectoryIndex
правильно установлен в корневом файле .htaccess
. (По умолчанию это index.html
, хотя многие дистрибутивы также включают index.php
, поэтому вам часто не нужно ничего делать!)
Например:
DirectoryIndex index. php
Это указывает Apache (mod_dir) искать файл index.php
в запрошенном каталоге (обратите внимание на относительный URL-путь), когда вы запрашиваете каталог напрямую. 9.*$ index.php [L,QSA]
Вам не нужно использовать mod_rewrite. На самом деле это правило тут все равно ничего не даст, так как 2-е условие явно исключает запросы к директориям.
Ссылка:
- https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex
RewriteEngine включен RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.+)/.*$ $1/index.php [L, QSA]
Я нашел ответ, с этим правилом каждая папка перенаправляется на нее index.php, если файл не существует.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
url-redirect · Темы GitHub · GitHub
Вот 24 публичных репозитория соответствует этой теме…
СироДиаз / laravel-перенаправление
Звезда 56Андре-ст / chrome-injectjs
Звезда 27БетаХун / cf-worker-перенаправление
Спонсор Звезда 19яояо-лю / URL-перенаправление-ж
Звезда 10SlickProxy / разработчик
Звезда 4URL-фреймворк / URL-адреса
Звезда 4нимешкверма / Отклонение
Звезда 4Уильямбарджент / YOURLS-прямая косая черта в URL-адресах
Звезда 4Эйджли2006 / укоротитель фляг
Звезда 2МаморуДС / redir_page
Звезда 2яояо-лю / URL-перенаправление
Звезда 1RichKMLS / Старый-Reddit-Redirect
Звезда 1Эммануэльдевс / Авель
Звезда 1Хокинг / gcp-статический сайт
Звезда 1Доминикбразилейро / идти обратного прокси
Звезда 1p208p2002 / URL-адрес безопасности
Звезда 0Морикава77 / swapqueryphp
Звезда 0Satishcg12 / короткий URL-узел
Звезда 0с-ол / перенаправить
Звезда 0ивекивек / URL-перенаправление
Звезда 0Улучшить эту страницу
Добавьте описание, изображение и ссылки на URL-перенаправление страницу темы, чтобы разработчикам было легче узнать о ней.