httpRedirect — перенаправление с http://www .*.com на http://*.com

#asp.net #iis-7 #redirect #web-config

#asp.net #iis-7 #перенаправление #web-config

Вопрос:

Я использую IIS7, и мне нужно настроить перенаправление в моей веб-конфигурации — в httpRedirect…

Что мне нужно сделать, так это создать пару постоянных перенаправлений:

 - http://www.*.com to http://*.com, and 
- http://*.com/test.html to http://*.com/test
  

Комментарии:

1. у вас две проблемы. один из них заключается в удалении www , а другой — в UrlMap

2. Нет ли способа удалить www из конфигурации?

Ответ №1:

Вот правило для IIS7, которое будет работать для вашего первого требования. Тип перенаправления постоянный (301).

 <rewrite>
  <rules>
    <rule name="test" stopProcessing="true">
      <match url="^www.(w .com)$" />
      <action type="Redirect" url="http://{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
  

Ваше второе требование потребует соблюдения следующих правил:

 <rewrite>
  <rules>
    <rule name="RedirectUserFriendlyURL" stopProcessing="true">
      <match url="^domain.com/test.html$" />
        <conditions>
          <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
        </conditions>
        <action type="Redirect" url="domain.com/test" appendQueryString="false" redirectType="Permanent" />
    </rule>
    <rule name="RewriteUserFriendlyURL" stopProcessing="true">
      <match url="^domain.com/test$" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="domain.com/test.html" />
    </rule>
  </rules>
</rewrite>
  

Эти правила будут переписаны http://domain.com/test.html в http://domain.com/test .
Возможно, вам потребуется изменить некоторые настройки в соответствии с вашими потребностями.

Комментарии:

1. Со второй перезаписью… почему существует 2 правила?

2. Хороший вопрос. Первое правило перенаправит пользователя на, domain.com/test если URL является domain.com/test.html , но если входящий URL является domain.com/test , то оно сохранит его в качестве URL, но перенаправит пользователя на страницу test.html . Предполагается, что у вас есть такая страница и вам необходимо это сделать. Если вам не нужно это правило, то вы можете его исключить.