Vapaamies
@Vapaamies
Разработчик будущей ОС для ПК размером 250 МБ

Как избавиться от зацикливания в RewriteRule?

Два виртуальных домена смотрят на один htdocs. В корне хостинга создал для них каталоги htdocs/forum и htdocs/media. Рядом с ними лежит такой htaccess:
RewriteEngine on

RewriteCond %{HTTP_HOST} =forum.cantorsys.com [NC]
RewriteRule ^ /forum%{REQUEST_URI} [QSA,L]

RewriteCond %{HTTP_HOST} =media.cantorsys.com [NC]
RewriteRule ^ /media%{REQUEST_URI} [QSA,L]

#RewriteRule ^/(.*)/?(.*)? http://$1.cantorsys.com/$2 [QSA,R=301]

Последнее перенаправление пришлось закомментировать, поскольку оно работает не так, как ожидается:
  • Хочется, чтобы URL вида http://forum.cantorsys.com/forum/userlist.php перенаправлялись в http://forum.cantorsys.com/userlist.php, то есть чтобы убирался /forum из пути и новый путь был в адресной строке браузера.
  • Сейчас http://media.cantorsys.com/forum/userlist.php нормально перенаправляется, а http://forum.cantorsys.com/forum вызывает зацикливание.

Не могу понять логику Apache. Что, нельзя на другой путь в своем домене перенаправлять?
  • Вопрос задан
  • 553 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ShamblerR
RewriteCond %{REQUEST_URI} ^/forum/(.*)$ [QSA,L,NC]
RewriteRule ^(.*)$ http:/forum.cantorsys.com/%1 [R=301,L]

Где %1 это то что в скобках в RewriteCond
Если тебе нужна скобка из RewriteRule то тут уже $1
А цикл у тебя поскольку %{REQUEST_URI} содержит твой forum
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы