Create dynamic subdomain
16 posts
• Page 1 of 1
Create dynamic subdomain
Hi,
I need a rule for get content from:
mysite.ru/index.asp?city=moscow
to
moscow.mysite.ru
I want to do that:
mysite.ru/index.asp?city=moscow => moscow.mysite.ru
and
www.mysite.ru/index.asp?city=moscow => www.moscow.mysite.ru
If it's possible.
I have a full ISAPI_Rewrite 3.0
Sergey.
I need a rule for get content from:
mysite.ru/index.asp?city=moscow
to
moscow.mysite.ru
I want to do that:
mysite.ru/index.asp?city=moscow => moscow.mysite.ru
and
www.mysite.ru/index.asp?city=moscow => www.moscow.mysite.ru
If it's possible.
I have a full ISAPI_Rewrite 3.0
Sergey.
Re: Create dynamic subdomain
Simply create a rule like
Best regards
Anton
- Code: Select all
RewriteRule www\.mysite.ru/index\.asp\?city=moscow http\://www.moscow.mysite.ru [I,RP]
Best regards
Anton
Re: Create dynamic subdomain
Я знаю, что разработчики говорят по-русски, поэтому позволю себе спросить на родном языке:
мне нужно правило, которое бы автоматом формировало поддомены чтоли в зависимости от параметра в урле ..
т.е., например у меня есть адреса вида:
mysite.ru/index.asp?city=moscow
mysite.ru/index.asp?city=boston
mysite.ru/index.asp?city=ny
...
На этих адресах показывается определенный контент.
И мне нужно создать правило, которое бы формировало поддомен:
moscow.mysite.ru
boston.mysite.ru
ny.mysite.ru
...
и показывало на нем контент из урла с параметрами:
Их много, и чтобы на них был тот же контент, что и у урлов с параметрами. Не редирект, а чтобы урл открывался и оставался на поддомене.
Такое возможно ?
Т.е. не создавать в ДНС-е тысячи записей, а воспользоваться правилами ISAPI Rewrite.
Например, физически у меня в ДНС-е нет записи "moscow.mysite.ru"
Но я бы хотел, чтобы юзер смог у себя в браузере набрать этот адрес и чтобы он увидел контент вот этого адреса "mysite.ru/index.asp?city=moscow" и при этом не происходило редиректа, а юзер оставался на "moscow.mysite.ru"
Большое спасибо.
С уважением, Сергей.
мне нужно правило, которое бы автоматом формировало поддомены чтоли в зависимости от параметра в урле ..
т.е., например у меня есть адреса вида:
mysite.ru/index.asp?city=moscow
mysite.ru/index.asp?city=boston
mysite.ru/index.asp?city=ny
...
На этих адресах показывается определенный контент.
И мне нужно создать правило, которое бы формировало поддомен:
moscow.mysite.ru
boston.mysite.ru
ny.mysite.ru
...
и показывало на нем контент из урла с параметрами:
Их много, и чтобы на них был тот же контент, что и у урлов с параметрами. Не редирект, а чтобы урл открывался и оставался на поддомене.
Такое возможно ?
Т.е. не создавать в ДНС-е тысячи записей, а воспользоваться правилами ISAPI Rewrite.
Например, физически у меня в ДНС-е нет записи "moscow.mysite.ru"
Но я бы хотел, чтобы юзер смог у себя в браузере набрать этот адрес и чтобы он увидел контент вот этого адреса "mysite.ru/index.asp?city=moscow" и при этом не происходило редиректа, а юзер оставался на "moscow.mysite.ru"
Большое спасибо.
С уважением, Сергей.
Re: Create dynamic subdomain
Дружище, боюсь такое невозможно.
Тебе нужно хоть как иметь эти поддомены.
Все что делает ISAPI - перекидывает запросы с одного вида на другой, но конечный запрос должен быть чем-то реальным, иначе браузеру неясно куда идти-то?
А если ты хочешь чтобы вообще никакого редиректа не происходило, а просто в строке браузера выглядело красиво - то это уже что-то из области JavaScript я думаю, вот им может быть и возможно что-то сделать, если бразуер разрешит рисовать не те УРЛ, что на самом деле, но опять же ISAPI тут ни при чем.
Так мне кажется, могу ошибаться канеш.
Тебе нужно хоть как иметь эти поддомены.
Все что делает ISAPI - перекидывает запросы с одного вида на другой, но конечный запрос должен быть чем-то реальным, иначе браузеру неясно куда идти-то?
А если ты хочешь чтобы вообще никакого редиректа не происходило, а просто в строке браузера выглядело красиво - то это уже что-то из области JavaScript я думаю, вот им может быть и возможно что-то сделать, если бразуер разрешит рисовать не те УРЛ, что на самом деле, но опять же ISAPI тут ни при чем.
Так мне кажется, могу ошибаться канеш.
Re: Create dynamic subdomain
Я точно помню, правда давно было, что я игрался с правилами и таки добился работы поддоменов без записей в ДНС. Это точно на 100%.
Т.е. такое в принципе возможно. Другой вопрос - как ? Я уже не помню. плюс ко всему их бы еще в динамике получать.
Т.е. такое в принципе возможно. Другой вопрос - как ? Я уже не помню. плюс ко всему их бы еще в динамике получать.
- HeliconAndrew
- Posts: 1264
- Joined: 07 Mar 2012, 10:16
Re: Create dynamic subdomain
Здравствуйте,
Могу успокоить. Реализовать такие правила можно и без создания фактических суб-доменов(ISAPI_Rewrite обрабатывает запросы до IISa):
С Уважением,
Андрей
Могу успокоить. Реализовать такие правила можно и без создания фактических суб-доменов(ISAPI_Rewrite обрабатывает запросы до IISa):
- Code: Select all
RewriteEngine on
RewriteBase /
# redirect www.mysite.ru/index.asp?city=moscow ------> www.moscow.mysite.ru
RewriteCond %{HTTP:Host} ^www\.mysite.ru$ [NC]
RewriteCond %{QUERY_STRING} ^city=([^/]+)$ [NC]
RewriteRule ^index\.asp$ http://www.%1.mysite.ru [NC,R=301,L]
#rewrite(proxy) to load content for sub-domain
RewriteCond %{HTTP:Host} ^www\.([^.]+)\.mysite.ru$ [NC]
RewriteRule . http://www.mysite.ru/index.asp?city=%1 [NC,P]
С Уважением,
Андрей
Re: Create dynamic subdomain
Очень интересно, не знал про такую удивительную возможность ISAPI_Rewrite!
Только все же не совсем понятно, приходит ли нашему браузеру что-то навроде
или же нет?
Если приходит - то браузер побежит за адресом (город).mysite.ru в DNS (а там его нет!).
Если не приходит - то почему строка браузера будет изменена с http://www.mysite.ru/index.php?... на http://www.(город).mysite.ru?
Только все же не совсем понятно, приходит ли нашему браузеру что-то навроде
- Code: Select all
302 Location: (город).mysite.ru
или же нет?
Если приходит - то браузер побежит за адресом (город).mysite.ru в DNS (а там его нет!).
Если не приходит - то почему строка браузера будет изменена с http://www.mysite.ru/index.php?... на http://www.(город).mysite.ru?
Re: Create dynamic subdomain
Добрый день, Андрей !
К сожалению, Ваше правило у меня не заработало. Ни с "www", ни без "www".
У меня зарегистрирован домен - mydomain.ru
Если набрать его в браузере - открывается некий контент.
В Helicon Manager для этого домена я написал:
Но, если в браузере набрать:
- qqq.mydomain.ru
- http://www.qqq.mydomain.ru
ничего не происходит. Выскакивает ошибка "Сервер qqq.mydomain.ru не найден из-за ошибки поиска DNS"
Буду очень признателен Вам за помощь.
С уважением, Сергей.
К сожалению, Ваше правило у меня не заработало. Ни с "www", ни без "www".
У меня зарегистрирован домен - mydomain.ru
Если набрать его в браузере - открывается некий контент.
В Helicon Manager для этого домена я написал:
- Code: Select all
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Host} ^www\.mydomain.ru$ [NC]
RewriteCond %{QUERY_STRING} ^city=([^/]+)$ [NC]
RewriteRule ^index\.asp$ http://www.%1.mydomain.ru [NC,R=301,L]
RewriteCond %{HTTP:Host} ^www\.([^.]+)\.mydomain.ru$ [NC]
RewriteRule . http://www.mydomain.ru/index.asp?city=%1 [NC,L]
Но, если в браузере набрать:
- qqq.mydomain.ru
- http://www.qqq.mydomain.ru
ничего не происходит. Выскакивает ошибка "Сервер qqq.mydomain.ru не найден из-за ошибки поиска DNS"
Буду очень признателен Вам за помощь.
С уважением, Сергей.
- HeliconAndrew
- Posts: 1264
- Joined: 07 Mar 2012, 10:16
Re: Create dynamic subdomain
Вот пример схожей проблемы и ее решение, все очень похоже. Нужно отметить, что wildcard для субдоменов установить все-таки нужно, если это не делалось.
Если вы сразу правила используете в .htaccess, то сократить можно до:
Если все равно не получается, то подавайте логи - будем смотреть.
Логи можно включить, разместив следующие строки в httpd.conf
не забывайте отключать логи после тестового запроса.
Если вы сразу правила используете в .htaccess, то сократить можно до:
- Code: Select all
RewriteEngine on
RewriteCond %{QUERY_STRING} ^city=([^/]+)$ [NC]
RewriteRule ^index\.asp$ http://www.%1.mydomain.ru [NC,R=301,L]
RewriteCond %{HTTP:Host} ^www\.([^.]+)\.mydomain\.ru$ [NC]
RewriteRule . http://www.mydomain.ru/index.asp?city=%1 [NC,L]
Если все равно не получается, то подавайте логи - будем смотреть.
Логи можно включить, разместив следующие строки в httpd.conf
- Code: Select all
#enabling rewrite.log
RewriteLogLevel 9
#enabling error.log
LogLevel debug
не забывайте отключать логи после тестового запроса.
Re: Create dynamic subdomain
Странная ситуация.
У меня IIS стоит за ISA Server-ом, т.е., чтобы работали сайты - мне надо сделать их публикацию на ISA и потом прописать на IIS.
Так вот я наблюдаю вот такую штуку:
- в ДНС-е записи нет
- публикую в ISA qqq.mysite.ru (пробрасываю его на внутренний комп с IIS)
- на IIS в настройках сайта прописываю еще и qqq.mysite.ru
- никаких правил в ISAPI не добавляю
И о чудо - qqq.mysite.ru открывается.
Конечно, это совсем не то, что мне нужно. В общем мне кажется, что надо мне тестовый сайт повесить на белый IP и уже там тестировать правила.
В выходные постараюсь заняться и о результатах сообщу.
С уважением, Сергей.
У меня IIS стоит за ISA Server-ом, т.е., чтобы работали сайты - мне надо сделать их публикацию на ISA и потом прописать на IIS.
Так вот я наблюдаю вот такую штуку:
- в ДНС-е записи нет
- публикую в ISA qqq.mysite.ru (пробрасываю его на внутренний комп с IIS)
- на IIS в настройках сайта прописываю еще и qqq.mysite.ru
- никаких правил в ISAPI не добавляю
И о чудо - qqq.mysite.ru открывается.
Конечно, это совсем не то, что мне нужно. В общем мне кажется, что надо мне тестовый сайт повесить на белый IP и уже там тестировать правила.
В выходные постараюсь заняться и о результатах сообщу.
С уважением, Сергей.
- HeliconAndrew
- Posts: 1264
- Joined: 07 Mar 2012, 10:16
Re: Create dynamic subdomain
ISA... вполне возможны ращличные ситуации...
Ждем новостей.
С Уважением,
Андрей.
Ждем новостей.
С Уважением,
Андрей.
Re: Create dynamic subdomain
1. wildcard для субдоменов прописали
2. на ISA сделали правило для *.mysite.ru - все запросы уходят на IIS
3. субдомены открываются, только если их прописать в привязке к сайту в IIS
4. логи ошибок пустые
Вот полный код для моего сайта:
если прописать в IIS, а потом открыть в браузере:
qqq.mysite.ru
eee.mysite.ru
они открываются
если не прописывая в IIS попытаться открыть:
abrakadabra.mysite.ru
то выдает вот что
Rewrite в принципе работает, т.к.
обрабатывается и mysite.ru/index.html открывается.
IIS на 2008-м сервере.
С уважением, Сергей.
2. на ISA сделали правило для *.mysite.ru - все запросы уходят на IIS
3. субдомены открываются, только если их прописать в привязке к сайту в IIS
4. логи ошибок пустые
Вот полный код для моего сайта:
- Code: Select all
RewriteEngine On
RewriteBase /
#enabling rewrite.log
RewriteLogLevel 9
#enabling error.log
LogLevel debug
RewriteCond %{QUERY_STRING} ^city=([^/]+)$ [NC]
RewriteRule ^index\.asp$ http://www.%1.mysite.ru [NC,R=301,L]
RewriteCond %{HTTP:Host} ^www\.([^.]+)\.mysite\.ru$ [NC]
RewriteRule . http://www.mysite.ru/index.asp?city=%1 [NC,L]
RewriteRule /index.html /index.asp [NC,L]
если прописать в IIS, а потом открыть в браузере:
qqq.mysite.ru
eee.mysite.ru
они открываются
если не прописывая в IIS попытаться открыть:
abrakadabra.mysite.ru
то выдает вот что
- Code: Select all
Bad Request - Invalid Hostname
HTTP Error 400. The request hostname is invalid.
Rewrite в принципе работает, т.к.
- Code: Select all
RewriteRule /index.html /index.asp [NC,L]
обрабатывается и mysite.ru/index.html открывается.
IIS на 2008-м сервере.
С уважением, Сергей.
Re: Create dynamic subdomain
Нашел тут тему:
http://www.helicontech.com/community/Pass_subdomain_as_parameter-9-141.html?p=613&hilit=subdomain#p613
Ради эксперимента заменил свой файл на вот это:
Я так понимаю, что при вводе в браузере:
меня должно перебросить на урл:
Но, к сожалению, я остаюсь на том же урле и у меня по-прежнему:
Такое ощущение, что поддомены IIS сама как-то обрабатывает не передавая это в Rewrite.
С уважением, Сергей.
http://www.helicontech.com/community/Pass_subdomain_as_parameter-9-141.html?p=613&hilit=subdomain#p613
Ради эксперимента заменил свой файл на вот это:
- Code: Select all
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Host} !^www\.mysite\.ru$
RewriteCond %{HTTP:Host} ^([^.]+)\.mysite\.ru$
RewriteRule ^$ /index.asp?ID=%1 [NC,L]
Я так понимаю, что при вводе в браузере:
- Code: Select all
abrakadabra.mysite.ru
меня должно перебросить на урл:
- Code: Select all
mysite.ru/index.asp?id=abrakadabra
Но, к сожалению, я остаюсь на том же урле и у меня по-прежнему:
- Code: Select all
Bad Request - Invalid Hostname
HTTP Error 400. The request hostname is invalid.
Такое ощущение, что поддомены IIS сама как-то обрабатывает не передавая это в Rewrite.
С уважением, Сергей.
- HeliconAndrew
- Posts: 1264
- Joined: 07 Mar 2012, 10:16
Re: Create dynamic subdomain
Наверное, мой недосмотр.После того как вы сделали wildcard:
Дальше, иис, он обрабатывает хидер HOST - раньше рерайта, т.к. иису нужно знать на какой сайт/пул передать запрос на выполнение
Стало быть надо сделать сайт в иисе который будет слушать все запросы на этом IP/порту или перечислять все нужные ему поддоменыю
А когда уж иис выберет сайт, то там свое дело сделает рерайт и перепишет на http://www.mysite.ru/index.asp?city=%1 и все получится.
То есть в этой цепи не хвататет сейчас сайта в IIS, одного, который будет слушать запросы.
С Уважением,
Андрей
- Code: Select all
*.example.com. 3600 IN MX 10 host1.example.com.
Дальше, иис, он обрабатывает хидер HOST - раньше рерайта, т.к. иису нужно знать на какой сайт/пул передать запрос на выполнение
Стало быть надо сделать сайт в иисе который будет слушать все запросы на этом IP/порту или перечислять все нужные ему поддоменыю
А когда уж иис выберет сайт, то там свое дело сделает рерайт и перепишет на http://www.mysite.ru/index.asp?city=%1 и все получится.
То есть в этой цепи не хвататет сейчас сайта в IIS, одного, который будет слушать запросы.
С Уважением,
Андрей
Re: Create dynamic subdomain
В общем сделал так:
- в IIS сайт, в котором прописано, чтобы он открывался по запросам
192.168.1.5 - mysite.ru
192.168.1.5 - www.mysite.ru
Эти сайты открываются.
- в IIS сайт, в котором никаких названий сайтов не прописано
192.168.1.5 - пусто
Рерайт для этого сайта следующий:
Сайты смотрят в разные папки.
При обращении по адресу:
abrakadabra.mysite.ru - обычная ошибка IIS, т.к. вторая папка пуста. Но, если в нее положить какой-нибудь файл - он открывается.
http://abrakadabra.mysite.ru/client10.png - открывается. Файл "client10.png" лежит в папке для второго сайта.
Что-то в правилах рерайта, видимо.
С уважением, Сергей.
- в IIS сайт, в котором прописано, чтобы он открывался по запросам
192.168.1.5 - mysite.ru
192.168.1.5 - www.mysite.ru
Эти сайты открываются.
- в IIS сайт, в котором никаких названий сайтов не прописано
192.168.1.5 - пусто
Рерайт для этого сайта следующий:
- Code: Select all
RewriteEngine On
RewriteBase /
#enabling rewrite.log
RewriteLogLevel 9
#enabling error.log
LogLevel debug
RewriteCond %{QUERY_STRING} ^city=([^/]+)$ [NC]
RewriteRule ^index\.asp$ http://www.%1.mysite.ru [NC,R=301,L]
RewriteCond %{HTTP:Host} ^www\.([^.]+)\.mysite\.ru$ [NC]
RewriteRule . http://www.mysite.ru/index.asp?city=%1 [NC,L]
Сайты смотрят в разные папки.
При обращении по адресу:
abrakadabra.mysite.ru - обычная ошибка IIS, т.к. вторая папка пуста. Но, если в нее положить какой-нибудь файл - он открывается.
http://abrakadabra.mysite.ru/client10.png - открывается. Файл "client10.png" лежит в папке для второго сайта.
Что-то в правилах рерайта, видимо.
С уважением, Сергей.
- HeliconAndrew
- Posts: 1264
- Joined: 07 Mar 2012, 10:16
Re: Create dynamic subdomain
Такие правила мы пишем довольно часто, можете еще раз посмотреть на схожую проблему, на которую я ссылался ранее.
Где-то что-то было пропущено, я думаю. Попробуйте сделать все заново, на чистую. Если не получится, то напишите нам на почту или в helpdesk и дайте доступ к серверу, если возможно.
с Уважением,
Андрей
Где-то что-то было пропущено, я думаю. Попробуйте сделать все заново, на чистую. Если не получится, то напишите нам на почту или в helpdesk и дайте доступ к серверу, если возможно.
с Уважением,
Андрей
16 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 0 guests