Страница 1 из 1

Apache автоподдомены

Добавлено: 2010-12-20 14:46:04
pismenov
Приветствую!
Есть домен - example.com
Нужно реализовать следующее преобразование -

Код: Выделить всё

(третий_уровень).example.com -> example.com/index.php?var=(третий_уровень)
но чтобы при этом пользователя не перенаправляло на

Код: Выделить всё

example.com/index.php?var=(третий_уровень)
т.е чтобы в адресной строке он видел

Код: Выделить всё

(третий_уровень).example.com
Сделал это след. образом

Код: Выделить всё

  RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
  RewriteRule ^/(.*) http://example.com/index.php?var=%1
Но при таком раскладе перекидывает на

Код: Выделить всё

example.com/index.php?var=(третий_уровень)
Прошу помощи!

Re: Apache автоподдомены

Добавлено: 2010-12-20 15:09:02
unix-admin
с виртуалхостами пробовали поиграться?

Re: Apache автоподдомены

Добавлено: 2010-12-20 17:52:27
pismenov
Я всё это прописал в настройках виртуалхоста.

Код: Выделить всё

RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www.example.com$
  RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
  RewriteRule ^/(.*) http://www.example.com/index.php?var=%2

Re: Apache автоподдомены

Добавлено: 2010-12-20 21:40:24
FiL
попробуй поиграть с флагами.

Re: Apache автоподдомены

Добавлено: 2010-12-20 21:45:15
pismenov
Я так понимаю нужно использовать флаг [P], но при этом должны быть подключены модули mod_proxy и mod_proxy_http. Но может есть другой вариант?

Re: Apache автоподдомены

Добавлено: 2010-12-21 0:33:37
unix-admin
pismenov писал(а):Я всё это прописал в настройках виртуалхоста.

Код: Выделить всё

RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www.example.com$
  RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
  RewriteRule ^/(.*) http://www.example.com/index.php?var=%2
А так:
---
ServerName example.com
ServerAlias *.example.com

RewriteEngine on
RewriteCond %{http_host} .
RewriteCond %{http_host} !^www.example.com [NC]
RewriteCond %{http_host} ^([^.]+)\.example.com [NC]
RewriteRule ^(.*) http://%1.example.com/index.php?var=%1 [R=301,L,QSA]
---

?

Re: Apache автоподдомены

Добавлено: 2010-12-21 8:48:05
pismenov
Решил вопрос пересборкой апача с модулями mod_proxy и mod_proxy_http.
Конфиг virtualhost cледующий

Код: Выделить всё

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com
RewriteCond %{HTTP_HOST} ^((.*)\.)example.com
RewriteRule ^/(.*) http://www.example.com/index.php?var=%2 [P]