Здравствуйте!
Не стал создавать новую тему, а спрошу здесь, так как заголовок "
Перенаправить на страницу" совпадает с моим вопросом.
Необходимо сделать редирект на сайте с помощью mod_rewrite (изменить файл .htaccess).
Немного информации. Сайт сделан на инклудах, все страницы физически расположены по адресу -
корень_сайта/content/Страницы имеют вид
_http://site.ru/content/article1.phpЧто требуется?
Хотелось бы получить в адресной строке URL вида
_http://site.ru/article1.php, то есть убрать из адреса
/content/, но при этом не меняя физического расположения статей, то есть вариант разместить файлы в корень сайта не подходит.
Что было сделано, какие попытки были предприняты?
1. Сделал копию папки content и разместил её в корень, назвав articles. - Это было сделано для того, чтобы избежать бесконечного цикла редиректов (redirect loop). Может я перемудрил?
2. Изменил конфигурационный файл .htaccess следующим образом:
Код файла .htaccess
RewriteEngine On
RewriteBase /websites/site/
Options +FollowSymlinks
RewriteRule ^content/(.*)$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/content
RewriteRule ^(.*)$ http://localhost/websites/site/articles/$1 [L]
ErrorDocument 404 /websites/mysite/404.php
На локальной машине все работает как надо, но я не уверен в правильности кода, а тем более в том, насколько быстро обрабатывается код и не нагружает ли он лишний раз сервер.
На хостинге приведенный выше
код НЕ работает, возникают непонятные циклы редиректов (redirect_loop), а главное - адресная строка не отображается верно.
Основная проблема - страницы подгружаются, то есть редирект срабатывает, но в строке браузера все равно отображается физическая папка, на этот раз articles. То есть при запросе
_http://site.ru/content/article1.php отображается страница
_http://site.ru/articles/article1.phpЧто я делаю неверно, где закралась ошибка? Возможно, существует более простое решение?
Заранее спасибо за любые конструктивные идеи по поводу решения данной задачи.