asp.net – IIS URL重写和Web.config

我不明白任何关于IIS,但我试图解决这个问题的所有访问者重定向到domain.com/page到domain.com/page.html

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <rewrite>
          <rewriteMaps>
              <rewriteMap name="StaticRedirects">
                  <add key="/page" value="/page.html" />
              </rewriteMap>
            </rewriteMaps>
      </rewrite>
  </system.webServer>
</configuration>

出现了一些问题:

>我不知道甚至把文件放在哪里。有一个用户根目录,和一个htdocs目录,我试过两个,没有喜悦。
>我甚至不知道帐户是否可以重写,我试图找到那个。

1)您现有的web.config:您已经声明重写映射..但尚未创建任何将使用它的规则。 RewriteMap在它自己的确绝对没有。

2)下面是你可以做到的(它不利用重写地图 – 规则,这是很好的小量的重写/重定向):

此规则将执行SINGLE EXACT重写(内部重定向)/页到/page.html。浏览器中的网址将保持不变。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="SpecificRewrite" stopProcessing="true">
                <match url="^page$" />
                <action type="Rewrite" url="/page.html" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

此规则#2将执行与上述相同的操作,但将执行301重定向(永久重定向),其中URL将在浏览器中更改。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="SpecificRedirect" stopProcessing="true">
                <match url="^page$" />
                <action type="Redirect" url="/page.html" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

规则#3将尝试对任何网址执行此类重写,如果有这样的文件扩展名为.html(即/页将检查/page.html是否存在,如果它然后重写发生):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="DynamicRewrite" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{REQUEST_FILENAME}\.html" matchType="IsFile" />
                </conditions>
                <action type="Rewrite" url="/{R:1}.html" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
翻译自:https://stackoverflow.com/questions/4410067/iis-url-rewrite-and-web-config

转载注明原文:asp.net – IIS URL重写和Web.config