如何限制Azure应用仅通过自定义域名访问,禁用默认域名与CDN端点?
如何强制终端用户仅通过自定义域名访问Azure网站
当然可以实现这个需求!我来给你拆解几个可行的方案,覆盖Azure App Service本身配置、CDN规则加固,还有进阶的流量管理选项,确保用户只能通过你的自定义*.net域名访问:
方案一:通过App Service配置URL重定向
这是最直接的方式,针对默认域名和CDN端点的请求做强制重定向:
- 基础准备:确保你已经在App Service的「自定义域名」面板完成了*.net域名的绑定与验证,并且开启了「HTTPS 仅」(在配置>常规设置里),强制所有请求走HTTPS。
- 添加URL重写规则:
- 如果你使用ASP.NET站点,在根目录的
web.config里添加以下规则:<rewrite> <rules> <rule name="Block Non-Custom Domains" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_HOST}" pattern="^.*azurewebsite\.net$" /> <add input="{HTTP_HOST}" pattern="^.*azureedge\.net$" /> </conditions> <action type="Redirect" url="https://your-custom-domain.net/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite> - 如果你是PHP/Node.js等站点,可以在
.htaccess(Apache)或对应的配置文件里添加类似规则,核心逻辑都是匹配非自定义域名的请求,永久重定向到你的*.net域名。
- 如果你使用ASP.NET站点,在根目录的
方案二:CDN端加固+App Service访问限制
因为你的CDN源站是Azure网站,还需要从CDN层面拦截非自定义域名的请求,同时封锁直接访问App Service的路径:
- CDN规则引擎配置:
进入Azure CDN的「规则引擎」,添加一条规则:- 条件:
HTTP_HOST不等于你的自定义域名(*.net) - 动作:设置URL重定向,目标地址为你的自定义域名,状态码选择301永久重定向。
- 条件:
- App Service访问限制:
在App Service的配置>访问限制里添加允许规则,只放行CDN的IP地址段(Azure CDN的IP范围可在Azure官方文档中获取),这样除了CDN之外,没人能直接访问默认的azurewebsite.net域名,彻底切断绕开CDN的访问路径。
方案三:使用Azure Front Door(进阶选项)
如果需要更强大的流量管理和安全防护,Azure Front Door是个不错的选择:
- 将Front Door作为唯一入口,绑定你的自定义*.net域名,后端池指向你的Azure网站。
- 在Front Door的「路由规则」里设置:仅接受来自自定义域名的请求,其他域名的请求直接返回403 Forbidden或者重定向到自定义域名。
- 同时在App Service的访问限制里只允许Front Door的IP地址访问,彻底封锁所有非Front Door的请求。
额外测试与注意事项
- 测试所有访问路径:直接访问azurewebsite.net、azureedge.net,确认都会被重定向到自定义域名或者拒绝访问。
- 301永久重定向不仅能强制用户访问正确域名,还能帮助搜索引擎将原有域名的权重转移到自定义域名上,利于SEO。
- 如果你的站点是静态网站托管在Azure Storage,也可以通过Storage的「静态网站」配置里的重写规则实现类似效果。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

