Переадресация внутри сайта с помощью .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
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 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-перенаправление
страницу темы, чтобы разработчикам было легче узнать о ней.



php