如何实现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>
关键配置说明
反向代理规则:
- 通过
{HTTP_HOST}条件匹配目标子域名(www.mysite.au/uk) Rewrite动作将请求内部转发到主站对应路径,{R:1}会自动匹配原URL的路径部分(比如about)- 服务器变量设置用于传递原始请求信息给主站,方便业务逻辑处理
- 通过
出站规则:
- 自动修正响应中的绝对URL,把主站地址替换回子域名,避免页面中出现主站的链接暴露映射关系
代理基础设置:
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
相关产品推荐
相关产品推荐

