You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在IIS中实现子域名到指定物理文件夹的路由配置

实现Apache .htaccess到IIS web.config的规则迁移

首先确保你的IIS服务器已经安装了URL重写模块(IIS默认未预装,需通过服务器管理器添加)。

将以下web.config文件放置在应用根目录/wwwroot下,即可实现与原.htaccess完全一致的子域名映射逻辑:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <!-- 匹配api.mysite.com和src.mysite.com,重写到public目录 -->
                <rule name="Backoffice & Frontend API" stopProcessing="true">
                    <match url="^(.*)" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="^(api\.mysite\.com)$" ignoreCase="true" />
                        <add input="{HTTP_HOST}" pattern="^(src\.mysite\.com)$" ignoreCase="true" />
                    </conditions>
                    <action type="Rewrite" url="public/{R:1}" />
                </rule>
                
                <!-- 其他域名/请求,若未指向dist则重写到dist目录 -->
                <rule name="Any Other to Dist" stopProcessing="true">
                    <match url="^(.*)" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="^/dist" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/dist/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

规则说明:

  • 第一条规则通过{HTTP_HOST}匹配api.mysite.com和src.mysite.com,将所有请求重写到public目录下的对应路径,ignoreCase="true"对应原规则的NC,stopProcessing="true"对应L,IIS默认会跳过内部子请求,无需额外设置对应NS的参数。
  • 第二条规则检查请求路径是否以/dist开头(negate="true"表示取反),若不是则重写到/dist目录下的对应路径,同样用stopProcessing="true"终止后续规则处理。

内容的提问来源于stack exchange,提问作者jssDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:57:20