IIS URL 重写 - 将根目录重定向到子文件夹

IIS URL 重写 - 将根目录重定向到子文件夹

我想:http://somesite.com重定向至http://somesite.com/subfolder

看起来像是一个非常简单的请求。我关注了在线来源,它们都表明我应该使用^$正则表达式模式。我还添加了 HTTP 到 HTTPS 重定向,它工作正常。我还尝试禁用该规则,只是为了确保它不会干扰。这是在 IIS 10 / Server 2016 上运行的。

我的 web.config 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect root to NmConsole" stopProcessing="true">
                    <match url="^$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Redirect" url="/subfolder" appendQueryString="true" />
                </rule>
                <rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

对根域的请求不会重定向。为什么不起作用?

答案1

也许 HTTP 重定向在这里更合适,尽管该功能默认情况下未启用。

对于 Windows Server,请通过添加功能和角色向导并HTTP Redirection在下启用Server Roles > Web Server (IIS) > Common HTTP Features

对于 Windows 桌面,请通过appwiz.cplTurn Windows Features On or Off来操作。

启用后,您将添加:

<system.webServer>
   <httpRedirect enabled="true" destination="http://somesite.com/subfolder" />
</system.webServer>

添加到您的web.config文件中,您就可以开始工作了。您可以在以下网址阅读更多相关信息微软的文档

相关内容