Назад | Перейти на главную страницу

Субдомен не работает с Canonical Rewriting

Я настроил отображение поддоменов с подстановочными знаками для своего веб-приложения. Для этого я изменил "A" записи в настройках DNS. Все запросы к этим новым субдоменам работают нормально.

Ex: http://test1.foo.com, test2.foo.com

Позже я настроил переписывание IIS7 Canonical следующим образом:

<rewrite>
  <rules>
    <rule name="Enforce canonical hostname" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.foo\.com$" />
      </conditions>
      <action type="Redirect" url="http://www.foo.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

После добавления вышеуказанного кода все субдомены с подстановочными знаками направляются на http://www.foo.com.

Я хочу, чтобы все поддомены работали без проблем с применением канонической перезаписи.

Пожалуйста, помогите мне.

Этот вопрос немного устарел, но посмотрите, поможет ли это с проблемой поддомена. Я не тестировал его, но считаю, что он должен делать то, что вам нужно.

<rewrite>
  <rules>
    <rule name="Enforce canonical hostname - save subdomains" stopProcessing="true">
      <match url=".?" ignoreCase="false" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^([a-z.]+\.)?foo\.com$" />
        <add input="{HTTP_HOST}" pattern="^www\." negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="http://www.{C:1}foo.com{URL}" />
    </rule>
  </rules>
</rewrite>