IIS URL Rewrite 和 Web.config 配置

匿名
2024-01-29T09:16:35.5066667+00:00

我对 IIS 一无所知,但我正在尝试解决将所有访问者重定向到example.com/pageexample.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>

出现了几个问题:

  1. 我甚至不知道该文件放在哪里。 有一个 User 根目录和一个 htdocs 目录,我都尝试了,没有幸运。
  2. 我甚至不知道该帐户是否可以重写,我正在尝试找出答案。
Windows 开发 | Internet Information Services
0 个注释 无注释
{count} 票

接受的答案
  1. 匿名
    2024-01-29T09:34:01.4366667+00:00

    你好,

    1)您现有的 web.config:您已声明重写映射.但尚未创建任何将使用它的规则。 RewriteMap 本身没有起任何作用。

    2)下面是如何做到这一点(它不使用重写映射——仅使用规则,这对于少量重写/重定向来说很好):

    此规则#1 将执行一次精确重写(内部重定向)“/page”到“/page.html”。 浏览器中的 URL 将保持不变。

    <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>
    
    

    如果存在带有 .html 扩展名的文件,规则 #3 将尝试对任何 URL 执行此类重写(即,对于“/page”,它将检查“/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>
    
    

    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。
    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。
    最好的问候

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。