.htaccess перенаправление на поддомен

sanich_
На сайте с 24.05.2008
Offline
77
14519

Доброго всем дня.

Задача сделать из подпапок сайта поддомены, без физического перемещения подпапок на поддомены.

Средствами .htaccess

Пока все тестирую на локальном сайте денвера.

Есть сайт http://test.loc в нем папка bbs, нужно чтобы при вводе

1. http://bbs.test.loc/ открывалось содержимое папки http://test.loc/bbs/

2. При наборе адреса http://test.loc/bbs/.... происходила переадресация на http://bbs.test.loc/....

Что я сделал:

1. В корень http://test.loc/ поместил файл .htaccess с содержимым


RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^bbs\.test\.loc$
RewriteCond %{REQUEST_URI} !/bbs/
RewriteRule ^(.*)$ bbs/$1 [L]

#dnwr_host bbs.test.loc

Результат: при наборе http://bbs.test.loc/ открывается содержимое папки папки http://test.loc/bbs/

2. В http://test.loc/bbs/ поместил файл .htaccess с содержимым:

Redirect 301 / http://bbs.test.loc/

Результат: При наборе http://test.loc/bbs/... происходит переадресация на http://bbs.test.loc/bbs/....

а надо http://bbs.test.loc/....

Вероятно в первом файле .htaccess что то не так, но не пойму что. Помогите разобраться.

Лучший анализ бэков конкурентов - Yazzle (http://www.yazzle.ru/seo/8945eae37b4e842893f9c46afa70d80e/)
Хелпзонович
На сайте с 15.06.2005
Offline
133
#1

Не знаю, как на денвере, а на апаче у меня вот так работает

RewriteCond %{HTTP_HOST} ^bbs.test.loc$

RewriteCond %{REQUEST_URI} !^/bbs

RewriteRule ^(.*)$ /bbs/$1 [L,QSA]

Вы там держитесь! Хорошего вам настроения. Здоровья.
siv1987
На сайте с 02.04.2009
Offline
427
#2

В своем примере выше добавить

RewriteCond %{HTTP_HOST} ^test.loc

RewriteRule bbc/(.*)$ http://bbc.test.loc/$1 [R=301,L]

sanich_
На сайте с 24.05.2008
Offline
77
#3
Хелпзонович:
Не знаю, как на денвере, а на апаче у меня вот так работает

RewriteCond %{HTTP_HOST} ^bbs.test.loc$
RewriteCond %{REQUEST_URI} !^/bbs
RewriteRule ^(.*)$ /bbs/$1 [L,QSA]

А переадресация из папки на поддомен тоже есть?

т.е. набираешь http://test.loc/bbs/ должно перевести на http://bbs.test.loc/

????

sanich_ добавил 03.04.2011 в 18:39

siv1987:
В своем примере выше добавить

RewriteCond %{HTTP_HOST} ^test.loc
RewriteRule bbc/(.*)$ http://bbc.test.loc/$1 [R=301,L]

Куда добавить? В какой .htaccess? У меня из 2.

И полный текст .htaccess плиз

siv1987
На сайте с 02.04.2009
Offline
427
#4
Куда добавить? В какой .htaccess? У меня из 2.

Тот который первый.

И полный текст .htaccess плиз

Выше своих реврайтов, то есть ниже rewritebase, какой еще полный текст?

sanich_
На сайте с 24.05.2008
Offline
77
#5
siv1987:
Тот который первый.


Выше своих реврайтов, то есть ниже rewritebase, какой еще полный текст?

Итак. В корне http://test.loc/

файл .htaccess с содержимым:


RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^test.loc
RewriteRule bbc/(.*)$ http://bbc.test.loc/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^bbs.test.loc$
RewriteCond %{REQUEST_URI} !^/bbs
RewriteRule ^(.*)$ /bbs/$1 [L,QSA]

#dnwr_host bbs.test.loc

Перегружаю web сервер

Запрашиваю урл: http://bbs.test.loc/ браузер сообщает:

Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

Запрашиваю http://test.loc/bbs/ таже ошибка,т.е. цыкл получается.

Где ошибка?

Код второго .htaccess, который внутри папки /bbs/

Redirect 301 / http://bbs.test.loc/
siv1987
На сайте с 02.04.2009
Offline
427
#6
Код второго .htaccess, который внутри папки /bbs/

Никакой код там не нужен, и вообще htaccess из той папки удалить.

sanich_
На сайте с 24.05.2008
Offline
77
#7
siv1987:
Никакой код там не нужен, и вообще htaccess из той папки удалить.

Уже хорошо. Из вложенной папки bbs удалил htaccess

Итак. В корне http://test.loc/

файл .htaccess с содержимым:

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP_HOST} ^test.loc
RewriteRule bbc/(.*)$ http://bbc.test.loc/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^bbs.test.loc$
RewriteCond %{REQUEST_URI} !^/bbs
RewriteRule ^(.*)$ /bbs/$1 [L,QSA]

#dnwr_host bbs.test.loc

1. Запрашиваю урл: http://bbs.test.loc/ открывается содержимое папки папки bbs/, урл не меняется и это правильно.

2. Запрашиваю урл: http://test.loc/bbs/ открывается содержимое папки папки bbs/, урл не меняется и это не правильно. Т.е. меня должно перенаправить на http://bbs.test.loc/

Как это сделать?

siv1987
На сайте с 02.04.2009
Offline
427
#8
2. Запрашиваю урл: http://test.loc/bbs/

Потому что у меня там не bbs а /bbc

sanich_
На сайте с 24.05.2008
Offline
77
#9
siv1987:
Потому что у меня там не bbs а /bbc

Отлично, заработало, как надо, Спасибо! Пол дня не мог найти решение.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий