如何在Azure中将Web App Service特定路径映射到自有自定义域名
实现方案说明
可以实现该需求。Azure原生的自定义域名功能仅支持绑定到Web App的根地址,路径级的映射需要通过URL重写或前置流量路由规则实现,具体方案如下:
方案1:Web App内置URL重写(最便捷,无需额外服务)
- 前置操作:先将
xyz.com、abc.com按照Azure官方流程绑定到目标Web App,完成DNS解析与SSL证书配置,确保两个域名访问Web App根地址时可以正常连通。 - 根据Web App的运行环境配置对应重写规则:
Windows托管环境(IIS)
修改站点根目录下的web.config文件,添加如下规则:
<system.webServer> <rewrite> <rules> <!-- xyz.com映射规则 --> <rule name="xyz.com Path Mapping" stopProcessing="true"> <match url="^$" /> <conditions> <add input="{HTTP_HOST}" pattern="^xyz\.com$" /> </conditions> <action type="Rewrite" url="/Views?id=xyz" appendQueryString="false" /> </rule> <!-- abc.com映射规则 --> <rule name="abc.com Path Mapping" stopProcessing="true"> <match url="^$" /> <conditions> <add input="{HTTP_HOST}" pattern="^abc\.com$" /> </conditions> <action type="Rewrite" url="/Views?id=abc" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer>
说明:
Rewrite类型的动作会保留用户地址栏的xyz.com域名不跳转,如果你需要地址栏显示后端路径,将type改为Redirect即可。
Linux托管环境
以Nginx运行环境为例,在Nginx配置中添加对应规则:
server { listen 80; server_name xyz.com; rewrite ^/$ /Views?id=xyz last; } server { listen 80; server_name abc.com; rewrite ^/$ /Views?id=abc last; }
方案2:前置流量服务路由规则
如果你的Web App已经接入Azure Front Door、Azure Application Gateway等流量转发服务,可以直接在服务侧配置基于域名的路由规则,直接将对应域名的请求转发到指定的后端路径,无需修改Web App本身的配置。
注意事项
- 上述重写规则默认仅匹配根路径请求,如果你需要子路径也走对应映射,可以调整
match url的匹配规则。 - 配置规则时建议添加静态资源路径排除条件,避免静态资源请求被误重写。
内容的提问来源于stack exchange,提问作者bluejay
相关产品推荐
相关产品推荐

