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

如何实现www.mysite.au到www.mysite.com/au的URL映射?IIS/Azure配置

IIS/Azure 多域名路径映射的web.config重写规则

要实现你需要的域名映射(保持URL显示不变,内部转发到主站对应路径),可以通过IIS的URL Rewrite模块结合**Application Request Routing (ARR)**配置反向代理规则。以下是具体的web.config配置方案:

完整配置示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- 澳大利亚站点映射规则 -->
        <rule name="AU Domain Proxy" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www\.mysite\.au$" />
          </conditions>
          <action type="Rewrite" url="https://www.mysite.com/au/{R:1}" />
          <serverVariables>
            <set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />
            <set name="HTTP_X_UNPROXIED_URL" value="{REQUEST_URI}" />
          </serverVariables>
        </rule>

        <!-- 英国站点映射规则 -->
        <rule name="UK Domain Proxy" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www\.mysite\.uk$" />
          </conditions>
          <action type="Rewrite" url="https://www.mysite.com/uk/{R:1}" />
          <serverVariables>
            <set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />
            <set name="HTTP_X_UNPROXIED_URL" value="{REQUEST_URI}" />
          </serverVariables>
        </rule>
      </rules>
      <outboundRules>
        <!-- 修正响应中的绝对URL,避免泄露主站地址 -->
        <rule name="Rewrite Absolute URLs" preCondition="ResponseIsHtml">
          <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^https://www\.mysite\.com/(au|uk)/(.*)" />
          <action type="Rewrite" value="https://www.mysite.{C:1}/{C:2}" />
        </rule>
        <preConditions>
          <preCondition name="ResponseIsHtml">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
    <!-- 启用反向代理支持 -->
    <proxy enabled="true" preserveHostHeader="false" reverseRewriteHostInResponse="true" />
    <httpProtocol>
      <customHeaders>
        <!-- 防止缓存代理内容 -->
        <add name="Cache-Control" value="no-cache" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

关键配置说明

  1. 反向代理规则:

    • 通过{HTTP_HOST}条件匹配目标子域名(www.mysite.au/uk)
    • Rewrite动作将请求内部转发到主站对应路径,{R:1}会自动匹配原URL的路径部分(比如about)
    • 服务器变量设置用于传递原始请求信息给主站,方便业务逻辑处理
  2. 出站规则:

    • 自动修正响应中的绝对URL,把主站地址替换回子域名,避免页面中出现主站的链接暴露映射关系
  3. 代理基础设置:

    • proxy enabled="true"启用ARR反向代理功能,这是内部转发的核心
    • reverseRewriteHostInResponse="true"帮助自动修正响应中的主机头,减少额外配置

注意事项

  • Azure App Service默认已预装URL Rewrite和ARR模块,无需手动安装;自建IIS服务器需确保这两个模块已部署
  • 为所有子域名(www.mysite.au、www.mysite.uk)配置有效的SSL证书,避免HTTPS访问报错
  • 主站需允许来自这些子域名的请求,必要时配置CORS规则放行对应域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:52:45