Azure App Service能否将www域名重定向至非www域名?
在Azure App Service层面实现www到非www域名重定向
可以直接在Azure App Service层面实现该重定向,无需修改Docker容器内的Nginx配置,也不需要依赖Front Door或Application Gateway。以下是具体实现方案,包含Bicep配置示例:
实现方式:通过App Service应用设置注入Nginx重定向规则
Azure App Service允许通过应用设置WEBSITE_NGINX_CONF自定义Nginx配置片段,无需修改你的Docker镜像。这个设置会被App Service整合到默认的Nginx配置中,实现域名重定向。
步骤1:编写重定向规则
针对www到非www的HTTPS重定向,对应的Nginx规则如下:
server { listen 80; listen 443 ssl; server_name www.yourdomain.com; return 301 https://yourdomain.com$request_uri; }
该规则会将所有访问www.yourdomain.com的请求(无论HTTP还是HTTPS)永久重定向到https://yourdomain.com,同时保留原请求路径。
步骤2:通过Bicep配置App Service
将上述规则通过Bicep的应用设置注入到App Service中,示例代码如下:
// 假设已定义应用服务计划资源 resource appServicePlan 'Microsoft.Web/serverfarms@2022-09-01' = { name: 'your-app-service-plan' location: resourceGroup().location sku: { name: 'B1' tier: 'Basic' } } resource appService 'Microsoft.Web/sites@2022-09-01' = { name: 'your-app-service-name' location: resourceGroup().location properties: { serverFarmId: appServicePlan.id siteConfig: { appSettings: [ // 注入Nginx重定向规则 { name: 'WEBSITE_NGINX_CONF' value: ''' server { listen 80; listen 443 ssl; server_name www.yourdomain.com; return 301 https://yourdomain.com$request_uri; } ''' } // 保留已有的HTTP到HTTPS强制重定向 { name: 'WEBSITE_FORCE_HTTPS' value: 'True' } { name: 'WEBSITE_HTTP20_ENABLED' value: 'True' } ] } } }
关键注意事项
- 替换代码中的
your-app-service-name、your-app-service-plan和yourdomain.com为你的实际资源名称和域名。 - 确保已将
www.yourdomain.com和yourdomain.com两个域名绑定到App Service,且SSL证书覆盖这两个域名(否则HTTPS重定向会出现证书错误)。 - 应用设置生效后,App Service会自动重启Nginx服务加载新配置,无需手动重启应用。
内容的提问来源于stack exchange,提问作者Don Chambers
相关产品推荐
相关产品推荐

