Web.config Игнорировать все субдомены при перенаправлении не www на www - PullRequest
0 голосов
/ 23 января 2019

Я использую web.config для перенаправления всех не www на www, который работает нормально. Как добавить правило для игнорирования всех поддоменов, чтобы http://example.com перенаправлял на http://www.example.com, но любой поддомен http://*.example.com или http://one.example.com не перенаправлял на www. (Я не могу добавить список поддоменов).

<rule name="Redirect to www">
  <match url=".*" />
	  <conditions logicalGrouping="MatchAny">
		  <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" />
		</conditions>
	<action type="Redirect" url="http://www.{HTTP_HOST}" redirectType="Permanent"/>
</rule>

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Я думаю, что ответ Джоуи охватывает только случаи, когда домены заканчиваются на .com и не могут обрабатывать такие случаи, как .co.uk .co.za .com.au и т. Д. Вы можете немного расширить регулярное выражение, но если учесть, что для доменов разных типов, используя [az] , в конечном итоге также будет перенаправляться субдомены, что в зависимости от вопроса нежелательно.

Таким образом, чтобы достичь этого, вам нужно разобраться с конкретными случаями, которые, по вашему мнению, могут возникнуть в вашей ситуации.

<rule name="Redirect to www">
  <match url=".*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^([a-z-]+[.](com|co|ca|net)([.](uk|sg|au)){0,1})$" negate="false" />
  </conditions>
  <action type="Redirect" url="http://www.{HTTP_HOST}" redirectType="Permanent"/>
</rule>

Вы можете изменить регулярное выражение по своему вкусу.

0 голосов
/ 23 января 2019

Вы можете попробовать с помощью следующего кода:

<rules>
    <rule name="Redirect to www">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
            <add input="{HTTP_HOST}" pattern="^one\.example\.com$" negate="true" />
        </conditions>
        <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}"/>
    </rule>
</rules>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...