поддомены для пользователей (mod_rewrite)

silent3250

Новичок
поддомены для пользователей (mod_rewrite)

Хочу сделать для каждого пользователя свой поддомен,
чтобы он ссылался на subdomain/user.html
папки subdomain и файла user.html визически нет на сервере
все запросы идут через index.php

RewriteCond %{HTTP_HOST} !^(www\.)?domain.ru [NC]
RewriteCond %{HTTP_HOST} ^(.*).domain.ru [NC]
RewriteRule ^$ %{HTTP_HOST} [C]
RewriteRule ^([^.]+)\.[^.] subdomain/user.html?login=$1 [NC]

что нужно подправить?
при наборе адреса user.domain.ru - выдает ошибку 404
The requested URL /index.php was not found on this server.
 

Dovg

Продвинутый новичок
Разве поиск не нашел готовых решений?
 

silent3250

Новичок
ничего дельного не нашел

#Оригинальный пример
RewriteCond %{HTTP_HOST} ^www\.[^.]+\.website\.net$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^www\.([^.]+)\.website\.net(.*) /$1$2

тоже самое - 404
 

silent3250

Новичок
корень домена domain.ru
/www/domain.ru

по логам обращение к
/www/domain.ru/user

папки user естественно нет
 

Dovg

Продвинутый новичок
silent3250
Судя по
результат вполне ожидаемый

Ответ тут вполне очевиден, надо просто немного подумать.

ps. Подсказка: если бы тебе просто надо было перенаправить запрос с папки /user на index.php как бы ты написал?
 

silent3250

Новичок
с другим доменом (domain2.ru) у которого
DocumentRoot /www/domain.ru
все ок

RewriteCond %{HTTP_HOST} !^(www\.)?domain.ru [NC]
RewriteCond %{HTTP_HOST} ^user.domain2.ru [NC]
RewriteRule ^$ %{HTTP_HOST} [C]
RewriteRule ^([^.]+)\.[^.] company/69/ [NC]

открывается нужный раздел, меняю на domain.ru

RewriteCond %{HTTP_HOST} !^(www\.)?domain.ru [NC]
RewriteCond %{HTTP_HOST} ^user.domain.ru [NC]
RewriteRule ^$ %{HTTP_HOST} [C]
RewriteRule ^([^.]+)\.[^.] company/69/ [NC]

выдает 404, в логах /www/domain.ru/user
если адрес user2.domain.ru, в логах /www/domain.ru/user2

-~{}~ 10.09.08 16:36:

RewriteRule user/$ index.php
 

silent3250

Новичок
index.php который находится в
/www/domain.ru - никак не узнает

потомучто по адресу (в логах) user.domain.ru всеравно прет в
/www/domain.ru/user
а там index.php естественно нет
 

silent3250

Новичок
www.user.domain.ru/info

$1 user
$2 info

но у меня нет папок user и info

так не работает
RewriteRule ^www\.([^.]+)\.domain\.ru(.*) /index.php?surpath=$1&id=$2
так тоже
RewriteRule ^www\.([^.]+)\.domain\.ru /subdomain/user.html?login=$1

-~{}~ 10.09.08 17:13:

почему вот так работает

RewriteCond %{HTTP_HOST} !^(www\.)?domain.ru [NC]
RewriteCond %{HTTP_HOST} ^(.*).domain2.ru [NC]
RewriteRule ^$ %{HTTP_HOST} [C]
RewriteRule ^([^.]+)\.[^.] subdomain/user.html?login=$1 [NC]

а вот так нет

RewriteCond %{HTTP_HOST} !^(www\.)?domain2.ru [NC]
RewriteCond %{HTTP_HOST} ^(.*).domain.ru [NC]
RewriteRule ^$ %{HTTP_HOST} [C]
RewriteRule ^([^.]+)\.[^.] subdomain/user.html?login=$1 [NC]

-~{}~ 10.09.08 17:23:

тему можно закрывать

у меня в httpd.conf
VirtualDocumentRoot /www/domain.ru/%1


"Вот за что я люблю программирование...
Бывает не работает программа как надо, смотришь функцию, находишь в ней кучу косяков, исправляешь, но программа всё равно не работает, опять смотришь функцию и опять находишь косяки, а программа не работает...
А потом, б**, оказывается, что ты эту функцию вообще не используешь."
 
Сверху