Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] IIS7 - создание субдоменов с помошью rewrite module

Ответить
Настройки темы
[решено] IIS7 - создание субдоменов с помошью rewrite module

Пользователь


Сообщения: 103
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Magikanin2006
Дата: 15-03-2010
Коллеги,

windows 2008 32bit +IIS7 с последними обновлениями...

Хочу создать следующее:

www.site.com расположен в каталоге d:\wwwroot
sub1.site.com расположен в каталоге d:\wwwroot\sub1
sub2.site.com расположен в каталоге d:\wwwroot\sub2
...и т.д.
т.е. пользователь набрав в браузере ссылку sub2.site.com получает содержимое d:\wwwroot\sub2
и при этом думает что работает с доменом 3 уровня.

прописал в файле hosts для экпериментов
127.0.0.1 www.site.com
127.0.0.1 sub1.site.com
127.0.0.1 sub2.site.com

нашел в интренете статью: http://www.webmasterworld.com/micros...et/3194877.htm
Установил mod_rewrite от microsoft (http://www.iis.net/expand/URLRewrite)
взял пример парактически без изменений (только example.com и www.highspeed.com??) заменил на имя своего домена.
Не сработало - выдает ошибку в предпоследнем правиле.
Пытаюсь разобраться в mod_rewrite но пока, что без результатов.
Прошу помочь найти ошибку в тексте примера или обьяснить как сделать правильно.

Заранее благодарен.

Отправлено: 14:33, 14-03-2010

 

Deadooshka


Сообщения: 2514
Благодарности: 691

Профиль | Отправить PM | Цитировать


насколько вижу, там много ошибок... либо поищите другие примеры, либо задавайте вопрос по каждому конкретному правилу.

P.S. вместо прямой ссылки на файл дайте ссылку на страницу загрузки.

Отправлено: 19:36, 14-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 103
Благодарности: 1

Профиль | Отправить PM | Цитировать


написал пару правил:
Код: Выделить весь код
<rule name="SubDomain" stopProcessing="false">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.site\.com$" />
                    </conditions>
                    <action type="Rewrite" url="/{C:1}/" />
                </rule>
заработало. вопрос закрыт. Спасибо.

перенесите этот топик в ветку про rewrite, если будет возможность.

Последний раз редактировалось Sham, 15-03-2010 в 17:19. Причина: оформление кода


Отправлено: 13:59, 15-03-2010 | #3


Deadooshka


Сообщения: 2514
Благодарности: 691

Профиль | Отправить PM | Цитировать


Цитата Magikanin2006:
написал пару правил: »
вижу только одно
Цитата Magikanin2006:
перенесите этот топик в ветку про rewrite »
Та ветка о mod_rewrite apache.

Отправлено: 17:24, 15-03-2010 | #4


Пользователь


Сообщения: 103
Благодарности: 1

Профиль | Отправить PM | Цитировать


Коллеги.
В продолжение темы - прошу помощи:
Итак задача организации автоматичсеких субдоменов решилась правилом:
Код: Выделить весь код
<rule name="rewrite subdomain" stopProcessing="true">
<match url="(.*)" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
    <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.site\.org$" />
     <add input="{HTTP_HOST}" pattern="www\.(?!www)(\w+)\.site\.org$" />
      </conditions>
 <action type="Rewrite" url="/{C:1}/{R:1}" logRewrittenUrl="true" />
</rule>
А как написать исключение из этих правил?

например есть папка /img/ которая отображается как www.site.org/img/
хочу чтобы онаже отображалась в случае user1.site.org/img/
Проблема в том, что при таком url идет поиск файлов в user1/img/. а там такой папки нет...
Пытался перед правилом субдоменов прописать следующее:
Код: Выделить весь код
 <rule name="disable rewrite (/img/*)" enabled="true" stopProcessing="true">
      <match url="(/img/(\w+))" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="{R:1}" appendQueryString="true" logRewrittenUrl="true" />
 </rule>
Не срабатывает.

Где я ошибаюсь?
Заранее благодарен

Последний раз редактировалось Magikanin2006, 18-03-2010 в 10:09.


Отправлено: 08:48, 18-03-2010 | #5


Deadooshka


Сообщения: 2514
Благодарности: 691

Профиль | Отправить PM | Цитировать


имхо в первое правило нужно условие добавить c отрицательным выражением
Код: Выделить весь код
<add input="{REQUEST_URI}" pattern="!^/img/" />

Отправлено: 01:42, 19-03-2010 | #6


Пользователь


Сообщения: 103
Благодарности: 1

Профиль | Отправить PM | Цитировать


Как организовать логическую конструкцию (a+b)*c*d я не понял. Поэтому разбил на 2 правила:
Код: Выделить весь код
<rule name="rewrite subdomain" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{REQUEST_URI}" pattern="^/img/" negate="true" />
      <add input="{REQUEST_URI}" pattern="^/css/" negate="true" />
      <add input="{HTTP_HOST}" pattern="^(?!www)(\w+)\.site\.org$" />
    </conditions>
      <action type="Rewrite" url="/_{C:1}/{R:1}" logRewrittenUrl="true" />
</rule>
<rule name="rewrite www subdomain" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
       <add input="{REQUEST_URI}" pattern="^/img/" negate="true" />
       <add input="{REQUEST_URI}" pattern="^/css/" negate="true" />
       <add input="{HTTP_HOST}" pattern="www\.(?!www)(\w+)\.site\.org$" />
  </conditions>
       <action type="Rewrite" url="/_{C:1}/{R:1}" logRewrittenUrl="true" />
</rule>
В таком варианте из подстановки исключается /img/ и /css/

Спасибо за помощь.

Отправлено: 09:25, 19-03-2010 | #7


Deadooshka


Сообщения: 2514
Благодарности: 691

Профиль | Отправить PM | Цитировать


Два одинаковых правила - не айс.
Лучше поработать с регулярным выражением, примерно так:
Код: Выделить весь код
<add input="{HTTP_HOST}" pattern="^(?:www\.)?(\w+)(?<!www)\.site\.org$" />
Если синтаксис регулярных выражений в модуле - PCRE, то будет работать.

Отправлено: 10:23, 19-03-2010 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] IIS7 - создание субдоменов с помошью rewrite module

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - Настроить IIS7.0 и DynDNS на совместную работу? Firm_Head Windows Server 2008/2008 R2 22 16-07-2009 22:00
WIN~SERV_08 IIS7 2 сетевухи 1517472 Microsoft Windows NT/2000/2003 0 14-10-2008 17:28
Обработка субдоменов через .htaccess Dimonweb Вебмастеру 3 08-02-2007 21:40
apache htaccess rewrite задержка на исполнение E-mail Вебмастеру 1 20-11-2005 21:03
rewrite rule Surround Вебмастеру 1 02-02-2005 20:50




 
Переход