IIS 301 Redirect из подпапки в корневую папку - PullRequest
2 голосов
/ 03 ноября 2011

Клиент размещал содержимое своего веб-сайта в подпапке на своем сайте, например, 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 адрес?Если так, то как?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 ноября 2011

Я не могу проверить это прямо сейчас, но это должно работать:

<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>
0 голосов
/ 03 ноября 2011

Любой файл, который является www.customersite.com/content/?p=12, на самом деле будет одной из страниц по умолчанию в IIS, так что эта страница будет действительно чем-то вроде www.customersite.com/content/index.aspx? p = 12, если ваш файл по умолчанию - index.aspx, это может быть файл по умолчанию и т. д.

Просто добавьте файл в это место и установите код, чтобы взять строку запроса и выполнить перенаправление, вы также можете изменить состояние заголовка из кода, чтобы показать, что это 301.

...