Срочно нужна помощь с Mod Rewrite! Создание поддоменов!

VladimirZH

Новичок
Срочно нужна помощь с Mod Rewrite! Создание поддоменов!

Пишу диплом, очень срочно нужна помощь с написанием Mod Rewrite! Защита через несколько дней! Не могу двинуться без этой функции.

Суть:

Есть сайт www.site.com
Нужно, чтобы при обращении к поддомену www.user.site.com отображалась страница www.site.com/user.php?nm=user, но пользователь по прежнему видел www.user.site.com

Эта часть реализована:

RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?(.*)\.site\.com$
RewriteRule ^(.*)$ user.php?nm=%2

Все работает, но есть проблема, если нужно перейти по такой ссылке www.user.site.com?a=1, переменная $a не воспринимается! А это очень нужно! Как дописать условие, чтобы все работало?

Пожалуйста, помогите, в интернете ничего путевого не нашел, а нужно срочно!
 

VladimirZH

Новичок
Уже читал и не раз, там нет ничего о переменных, тут проблема не в самом поддомене - это работает, а в переменных, как дать rewrite понять, что www.user.site.com?a=1 - это www.sute.com/user.php?nm=user&a=1 ?
 

Фанат

oncle terrible
Команда форума
для создания поддоменов Mod Rewrite не нужен.
HTTP_HOST доступен и в пхп
 

VladimirZH

Новичок
Каким образом? Поддомены создавать вручную тут не вариант - их будут тысячи.
 

Фанат

oncle terrible
Команда форума
еще раз
для создания поддоменов Mod Rewrite не нужен.
HTTP_HOST доступен и в пхп

-~{}~ 09.06.09 14:57:

Mod Rewrite к поддоменам вообще никакого отноения не имеет. он работает с URI.
а домен используется браузером только для определения ip адреса, куда запрос слать.

-~{}~ 09.06.09 14:57:

диплом он пишет
 

VladimirZH

Новичок
Это не тема моего диплома :), я вообще экономист, просто создавал свое приложение как пример реализации темы, и там нужна реализация такой функции. Просто в этой теме дуб я, но решение очень срочно нужно, потому и обратился за помощью.
 

Фанат

oncle terrible
Команда форума
ты вообще понимаешь, что Mod Rewrite к поддоменам вообще никакого отноения не имеет?
что и без него у тебя (если хостинг позволяет) все запросы будут приходить на site.com, причем в адресной строке будет оставаться user.site.com?
без всякого Mod Rewrite
 

VladimirZH

Новичок
Да, так оно и есть. Проблема не в этом. При передаче переменной через $_GET - передается только $nm, а все, что стоит дальше - не передается.
 

Фанат

oncle terrible
Команда форума
если так оно и есть, что что у тебя Mod Rewrite вообще здесь делает и зачем он что-то передает гетом?
 

DiMA

php.spb.ru
Команда форума
c www.user.site.com?a=1 редирект на www.sute.com/user.php/nm=user/?a=1

nm=user попадет в отдельную переменную PATH
a=1 - стандартно в кверистринг

print_r($_SERVER) в user.php + подумать головой
 

VladimirZH

Новичок
RewriteCond %{HTTP_HOST} !^www\.site\.com$
RewriteCond %{HTTP_HOST} (www\.)?(.*)\.site\.com$
RewriteRule ^(.*)$ user.php?nm=%2

Такой реврайт, но нужно, чтобы помимо имени, передавались еще и дополнительные переменные, например, www.user.site.com?a=1&b=2 -> user.php?nm=user&a=1&b=2

И вот про $a и $b я не знаю как написать условие. Собственно, это и вся небольшая поправка, которую нужно внести в rewrite.
 

Фанат

oncle terrible
Команда форума
да. "так оно и есть"
- ты понимаешь, что рерайт не нужен, чтобы имя передавать?
- да, понимаю!
- а зачем ону тебя стоит?
- чтобы имя передавать!
 

VladimirZH

Новичок
DiMA: спасибо, помогло, вот что содержится в переменной:

GET [REQUEST_URI] => /?a=1&b=2&c=3

А дальше остается просто разбить её и выделить переменные?
 

DiMA

php.spb.ru
Команда форума
дальше следует тоже подумать головой, чтобы использовать готовую функцию для разбиения
 

Фанат

oncle terrible
Команда форума
не, можно и QSA применить.
но вот это цепляние за рерайт меня убивает
 

fixxxer

К.О.
Партнер клуба
а не проще выкинуть реврайт и парсить HTTP_HOST?
а завернуть субдомены на user.php куча нормальных способов, VirtualHost *.domain.com + index user.php например
 

VladimirZH

Новичок
Спасибо всем за помощь, проблема была решена! Думаю, тему можно закрывать.
 
Сверху