#iis #redirect #http-status-code-301
#iis #перенаправление #http-status-code-301
Вопрос:
Содержимое веб-сайта клиента находилось во вложенной папке на их сайте, например www.customersite.com/content . С тех пор он был перемещен в корневую папку, например www.customersite.com
Мы добавили перенаправление IIS 301 в конфигурацию сайта, которая выглядит следующим образом:
<rewrite>
<rules>
<rule name="Redirect to Root" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^customersite.com/content/$" />
</conditions>
<action type="Redirect" url="http://www.customersite.com/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
На сайте были ссылки, которые выглядели как www.customersite.com/content/?p=12 можно ли изменить перенаправление на автоматическое перенаправление на www.customersite.com/?p=12 если пользователь вводит старый www.customersite.com/content/?p=12 адрес? Если да, то как?
Спасибо!
Ответ №1:
Я не могу протестировать это прямо сейчас, но это должно сработать:
<rewrite>
<rules>
<rule name="Redirect to Root" stopProcessing="true">
<match url="^content/(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www.)?customersite.com$" />
</conditions>
<action type="Redirect" url="http://{C:0}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Ответ №2:
Любой файл, который www.customersite.com/content/?p=12 на самом деле это будет одна из страниц по умолчанию в IIS, так что страница действительно будет выглядеть примерно так www.customersite.com/content/index.aspx?p=12 предполагая, что ваш файл по умолчанию — index.aspx, он может быть по умолчанию и т.д.
Просто добавьте файл в это местоположение и задайте код, который принимает строку запроса и выполняет перенаправление, вы также можете изменить состояние заголовка из кода, чтобы показать, что это 301.