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

如何阻止ASP.NET Core 6 MVC站点的默认.azurewebsites.net域名被谷歌索引

解决Azure App Service默认域名与自定义域名共存于搜索结果的问题

1. 修正301重定向的全局配置

之前的重定向可能未覆盖所有请求场景,建议在ASP.NET Core的中间件层实现全局、无遗漏的301跳转:

在Program.cs中,在app.UseRouting()之后添加以下中间件代码,确保所有来自默认域名的请求都被永久重定向到自定义域名,同时保留请求路径和查询参数:

app.Use(async (context, next) =>
{
    var defaultDomain = "domain.azurewebsite.net";
    var customDomain = "your-custom-domain.com";

    // 检查请求主机是否为默认域名
    if (context.Request.Host.Host.Equals(defaultDomain, StringComparison.OrdinalIgnoreCase))
    {
        // 构造跳转URL,保留原请求的协议、端口、路径和查询参数
        var newUri = new UriBuilder(
            context.Request.Scheme,
            customDomain,
            context.Request.Host.Port,
            context.Request.Path,
            context.Request.QueryString.ToString()
        );
        
        context.Response.StatusCode = StatusCodes.Status301MovedPermanently;
        context.Response.Headers.Location = newUri.Uri.ToString();
        return;
    }

    await next();
});

同时确保Azure App Service的HTTPS 仅用选项已开启(在App Service的“TLS/SSL 设置”中),避免HTTP请求的重定向遗漏。

2. 针对不同域名返回对应的robots.txt

单一的robots.txt无法区分域名,需通过代码根据请求域名返回不同的规则:

在Program.cs中添加以下路由映射:

app.MapGet("/robots.txt", async context =>
{
    var defaultDomain = "domain.azurewebsite.net";
    string robotsContent;

    if (context.Request.Host.Host.Equals(defaultDomain, StringComparison.OrdinalIgnoreCase))
    {
        // 禁止搜索引擎爬取默认域名的所有内容
        robotsContent = @"User-agent: *
Disallow: /";
    }
    else
    {
        // 允许搜索引擎爬取自定义域名的内容,可按需添加其他规则
        robotsContent = @"User-agent: *
Allow: /";
    }

    context.Response.ContentType = "text/plain";
    await context.Response.WriteAsync(robotsContent);
});

3. 谷歌搜索控制台的主动干预

  1. 验证域名所有权:分别在谷歌搜索控制台中验证默认域名和自定义域名的所有权。
  2. 提交默认域名移除请求:在默认域名的搜索控制台中,使用“移除URL”工具提交整个域名的移除申请,说明需替换为自定义域名。
  3. 设置自定义域名为首选域名:在自定义域名的搜索控制台设置中,指定该域名为首选域名,明确告知谷歌这是官方唯一域名。
  4. 提交自定义域名站点地图:上传并提交自定义域名的站点地图,加速谷歌对新域名内容的抓取和索引替换。

4. Azure App Service的额外检查

  • 确认自定义域名的绑定已正确配置,在App Service的“自定义域名”页面中,确保默认域名未被标记为主域名。
  • 可将域名配置存入应用程序设置(在“配置”->“应用程序设置”中添加DEFAULT_DOMAIN和CUSTOM_DOMAIN变量),避免代码硬编码,方便后续修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:44:53