#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 . Предполагается, что у вас есть такая страница и вам необходимо это сделать. Если вам не нужно это правило, то вы можете его исключить.