IIS URL переписать переписать все .asp в .html - PullRequest
0 голосов
/ 07 мая 2010

Мне нужно создать правила для web.config, которые будут переписывать все запросы для файлов с расширением .html на .asp и перенаправлять все запросы .asp на .html

Пример:
file_xyz.asp переписываетв file_xyz.html
directory1 / file_xyz.asp перезаписывает в каталог directory1 / file_xyz.html
, а

file_xyz.html перенаправляет в файл file_xyz.asp
directory1 / file_xyz.html перенаправляет в каталог directory1 / file_xy.asp

  1. Каков синтаксис правила
  2. Это слишком широкое правило?Если по какой-либо причине мне нужен физический файл, такой как file_abc.html, как мне исключить его из правила перенаправления?
  3. Я думаю, мне следует просто использовать ISAPI_Rewrite http://www.isapirewrite.com/ Кажется, что существует масса ресурсов для перезаписи с помощью htaccess и очень мало онлайн-справки для использования перезаписи URL IIS 7.Любые мысли и / или советы

Заранее спасибо

До сих пор это мой синтаксис для web.config

<rule name="RewriteHTMLtoASP" stopProcessing="true">
  <match url="^([^/]+)\.html$" />
  <conditions logicalGrouping="MatchAll" />
  <action type="Rewrite" url="{R:1}.asp" />
  </rule>
 <rule name="RedirectASPtoHTML" stopProcessing="true">
    <match url="^([^/]+)\.asp$" />
     <conditions logicalGrouping="MatchAll">
     <add input="{REQUEST_METHOD}" pattern="^GET$" />
     </conditions>
     <action type="Redirect" url="{R:1}.html" appendQueryString="false" />
   </rule>

Ответы [ 2 ]

3 голосов
/ 30 октября 2011

Попробуйте, вы должны знать, что $ tag - это конец условия перенаправления / перезаписи, и строки запроса не будут приняты

<rule name="RewriteHTMLtoASP" stopProcessing="true">
              <match url="(.*).html(.*)" />
              <conditions logicalGrouping="MatchAll" />
              <action type="Rewrite" url="{R:1}.asp{R:2}" />
            </rule>
            <rule name="RedirectASPtoHTML" stopProcessing="true">
              <match url="(.*).asp(.*)" />
              <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_METHOD}" pattern="^GET$" />
              </conditions>
              <action type="Redirect" url="{R:1}.html{R:2}" appendQueryString="true" />
            </rule>
0 голосов
/ 07 мая 2010

Взгляните на эту статью: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Вы можете переписать свои веб-страницы через настройки web.config. Если вы используете виртуальный хостинг, я бы не рекомендовал использовать ISAPI.

Дайте мне знать, если это работает для вас.

С уважением, Анвар

...