#redirect #iis #url-rewriting
#перенаправление #iis #URL-перезапись
Вопрос:
У меня есть то, что мне кажется простой задачей с перезаписью URL-адреса IIS.
Мне нужно перенаправить на основе поддоменов на основной домен со строкой запроса. Например
demo.domain.com необходимо перенаправить наwww.domain.com/?key=demo
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="demo.domain.com" />
</conditions>
<action type="Redirect" url="www.domain.com/?key=demo" appendQueryString="false" redirectType="Found" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Комментарии:
1. learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/…
2. Я просматривал эти документы бесчисленное количество раз, и я не приблизился к решению. Любые другие, более конкретные предложения?
3. Трассировка запроса с ошибкой — лучший способ проверить процесс перезаписи, только таким образом вы можете проверить шаги, чтобы найти, в чем проблема.
Ответ №1:
Что происходит, когда вы вводите цифру demo.domain.com ?
Попробуйте изменить свой код следующим образом :
<rules>
<rule name="Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="^demo.example.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/?key=demo" appendQueryString="false" redirectType="Found" />
</rule>
</rules>
Посмотрите на изменения в строке «добавить ввод =» и «тип действия =»