Работа с поддоменами через MOD_REWRITE

Артемий

Новичок
Работа с поддоменами через MOD_REWRITE

Всем привет! А как при помощи MOD_REWRITE сделать следующее... Есть к примеру mysite.com нужно что бы при вводе pupkin.mysite.com кидало на mysite.com/pupkin

НО! при этом важно что при конструкциях например pupkin.mysite.com/products/13/index.html интерпритировалось

mysite.com/pupkin/index.php?ind="products"&id=13

Прекрасное правило

RewriteRule ^([a-z]+)/([0-9]+)/index.html$ index.php?ind=$1&id=$2

нам помогло бы не захотев я работать еще и с поддоменами.

Жду ответов и напутствий! Заранее спасибо
 

white phoenix

Новичок
Артемий
а в чем проблема? сделай два правила, одно для /products, а другое для всего остального.
> нам помогло бы не захотев я работать еще и с поддоменами.
выучи русский :)
 

Артемий

Новичок
Автор оригинала: white phoenix
а в чем проблема? сделай два правила, одно для /products, а другое для всего остального.
Так вот в том-то и вопрос , как должно выглядить это правило ведь фактически, я немогу вставить поддомен перед домаеном , я могу работать с тем что после доменного имени !
 

whirlwind

TDD infected, paranoid
Почему не можешь, можешь. mod_rewrite позволяет преписывать URL полностью. Выгреби регэкспом имя 3 уровня и поставь его в качестве подкаталога 1 уровня.
 

Артемий

Новичок
Автор оригинала: whirlwind
Почему не можешь, можешь. mod_rewrite позволяет преписывать URL полностью. Выгреби регэкспом имя 3 уровня и поставь его в качестве подкаталога 1 уровня.
А как ???...

RewriteCond %{REQUEST_URI} ^pupkin.*
RewriteRule ^pupkin.{HTTP_HOST}.([a-z]+)/([0-9]+)/index.html$ {HTTP_HOST}/pupkin/index.php?ind=$1&id=$2

универсальность храмает :(
 

whirlwind

TDD infected, paranoid
В кондишине не request_uri а http_host до точки. Только экранируй ее. В мануале апачном все подробно расписано. Просто так сходу не подгадаешь, тестируй.

и еще на заметку о бэкрефайренсах

Substitution of a rewriting rule is the string which is substituted for (or replaces) the original URL for which Pattern matched. Beside plain text you can use
back-references $N to the RewriteRule pattern
back-references %N to the last matched RewriteCond pattern
server-variables as in rule condition test-strings (%{VARNAME})
mapping-function calls (${mapname:key|default})
 

Nimous

Guest
pupkin.артемий.com ? :)
----------------------------------------------
Меня просто мучали сомнения, где у вас лежит .htaccess...
 

Артемий

Новичок
Автор оригинала: whirlwind
В кондишине не request_uri а http_host до точки. Только экранируй ее. В мануале апачном все подробно расписано. Просто так сходу не подгадаешь, тестируй.

и еще на заметку о бэкрефайренсах

Substitution of a rewriting rule is the string which is substituted for (or replaces) the original URL for which Pattern matched. Beside plain text you can use
back-references $N to the RewriteRule pattern
back-references %N to the last matched RewriteCond pattern
server-variables as in rule condition test-strings (%{VARNAME})
mapping-function calls (${mapname:key|default})
А если так попробовать?

RewriteRule ^([a-z]+).{HTTP_HOST}.([a-z]+)/([0-9]+)/index.html$ {HTTP_HOST}/$1/index.php?ind=$2&id=$3
 

Артемий

Новичок
Автор оригинала: whirlwind
сервер алиас *.артемий.com и все рулеса в одном файле
В смысле в ДНС добавить что ли ???...

-~{}~ 24.11.05 16:12:

Автор оригинала: Nimous
pupkin.артемий.com ? :)
----------------------------------------------
Меня просто мучали сомнения, где у вас лежит .htaccess...
В корне артемий.com
 

whirlwind

TDD infected, paranoid
Объясняю как работать с апачем (в т.ч. с модулями):

1. Заходим
http://httpd.apache.org/docs/2.0/mod/directives.html
2. жмем Ctrl+F3 (в зависимости от акселераторов браузера)
3.вбиваем интересующую нас директиву, в данном случае ServerAlias
4. Нажимаем Enter

вуаля!
 

Артемий

Новичок
Автор оригинала: whirlwind
Объясняю как работать с апачем (в т.ч. с модулями):

1. Заходим
http://httpd.apache.org/docs/2.0/mod/directives.html
2. жмем Ctrl+F3 (в зависимости от акселераторов браузера)
3.вбиваем интересующую нас директиву, в данном случае ServerAlias
4. Нажимаем Enter

вуаля!
5. Прозреваем :). но это к виртуальным хостингам относится как по мне... и может ли оно использоваться вне структуры .

<VirtualHost *>?

ну и главное директива в нутри .htaccess который лежит в корне сайта

ServerAlias *.mysite.com

не работает :(,
 

whirlwind

TDD infected, paranoid
Я думаю хостер запросто организует, если серьезный проект и действительно надо.

PS. Только я не уверен будет ли HTTP_HOST на реврайте действительно тот что был запрошен, или будет фигурировать ServerName. Вряд-ли, конечно, но стоит проверить.
 

Артемий

Новичок
Автор оригинала: whirlwind
Я думаю хостер запросто организует, если серьезный проект и действительно надо.

PS. Только я не уверен будет ли HTTP_HOST на реврайте действительно тот что был запрошен, или будет фигурировать ServerName. Вряд-ли, конечно, но стоит проверить.
А само правило?

RewriteRule ^([a-z]+).{HTTP_HOST}.([a-z]+)/([0-9]+)/index.html$ {HTTP_HOST}/$1/index.php?ind=$2&id=$3

то правильное ?
 

whirlwind

TDD infected, paranoid
Не, проверяй сам. мне некогда :)

Навскидку - нет. Сделай предварительный реврайт конд и выдели имя 3 уровня в матч. Далее реврайт рул и в нем в правой части сошлись бекреференсом на матч из кондишена.

PS. А вообще оно тебе надо? Заставь админов работать, че им зря бабки платят? :)
 

chery

Новичок
Народ, выискиваю, выискиваю темы про домены 3 уроня и MOD_REWRITE и не нахожу ответа на свой вопрос:

При регистрации пользователь получает страничку с именем по типу:
http://usernameblog.servername.it

Ну вот что то типа www.blogger.com

Вот как это делается?
Думаю, можно автоматизировать процесс регистрации доменов 3его уровня и записи их в конфиги Апача. Как конкретно, не знаю, но думаю, не с помощью PHP. Ребята, ну помогите.
MOD_REWRITE часто обсуждается, но нет тем о том, как выделяется домен 3 уровня для кажого отдельного юзера.
 
Сверху