【问题标题】:How to tell google that I have another page instead?如何告诉谷歌我有另一个页面?
【发布时间】:2011-12-19 20:59:13
【问题描述】:

我有一个 aspx 页面:1.aspx

我的应用程序和 rewriteurl 模块中没有任何路由。

我如何告诉谷歌:

我不再使用 1.aspx

请使用2.aspx instead

他的机器人总是在搜索 1.aspx

我该如何阻止它(并告诉他寻找 2.aspx 代替)?

【问题讨论】:

    标签: c# asp.net iis-7 iis-6


    【解决方案1】:

    使用robots.txt 文件:

    您可以在应用程序的根目录下创建一个robots.txt 文件并将以下内容放入其中:

    User-agent: Google
    Disallow: 1.aspx
    

    更多关于 robots.txt 文件http://www.robotstxt.org/robotstxt.html


    进行重定向:

    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location", "/2.aspx");
    

    Global.asax 中不存在该页面的情况下进行重定向:

    void Application_BeginRequest(object sender, EventArgs e) {
        string url = Request.Url.ToString().ToLower();
        if (url.Contains("/1.aspx")) {
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", "/2.aspx");
        }
    } 
    

    【讨论】:

    • 我该如何告诉他 2.aspx 而不是?
    • Robots 是指令,而不是命令。让 Google 知道该页面不存在的最佳方法是 301 重定向该页面。
    • @Chase 所以我将不得不保留 1.aspx(并在其中编写代码?)我不想保留 1.aspx.......
    • 如果你想删除页面,你可以做一个服务器端重定向。这里有一些建议,但它们似乎是客户端。服务器端 301 将允许您完全删除页面。
    • @hunter 所以我将不得不保留 1.aspx(并在其中编写代码?)我不想保留 1.aspx.......
    【解决方案2】:

    Google 会自动刷新。从您的网站中删除 1.aspx 页面。然后机器人会寻找该文件一段时间,但会扫描其余文件并更新索引。

    【讨论】:

    • 但是我的页面的索引和排名都很好,我不想让他再这样做...帮助?
    • 然后保留1.aspx并将新的内容放入其中。
    • @RoyiNamir:据我了解您的问题和 cmets:您想保留地址(= 文件名),但您不再需要该文件,所以我有两个选项提到。
    【解决方案3】:

    使用 301 永久重定向。如果您使用的是 .NET

    Response.Status = "301 Moved Permanently";
    Response.StatusCode = 301;
    Response.AddHeader("Location","http://www.new-url.com");
    Response.End();
    

    如果您使用的是 .NET 4.0:

    Response.RedirectPermanent("http://www.new-url.com");
    

    您可以了解有关 301 重定向的移动以及 Google 如何处理它们here

    【讨论】:

    • 我不想保留 1.aspx ...?这是否意味着我必须这样做?
    • @RoyiNamir 如果 URL 重写是不可能的,那么是的。 Something 必须告诉搜索引擎页面的位置已移动。在您的情况下, 1.aspx 只会重定向到 2.aspx。
    • @vcjones ,如果我删除 1.aspx ,谷歌会尝试永远搜索它吗?还是有一些时间或 X 限制?
    • @RoyiNamir 这有点离题了。您可能想在 webmasters.stackexchange.com 上询问特定的 SEO 问题。但要回答这个问题,我相信 Google 会在收到几个 404 后停止搜索它。不利的一面是,如果 Google 不知道它移动到了哪里,您的网页就会失去排名。
    【解决方案4】:

    您将需要使用 301 重定向。

    这取决于您的技术,但您可以通过http://www.webconfs.com/how-to-redirect-a-webpage.php了解更多信息

    例如在 ASP 中

    <%@ Language=VBScript %>
    <%
    Response.Status="301 Moved Permanently"
    Response.AddHeader "Location","http://www.new-url.com/"
    %> 
    

    对于 ASP.NET

    <script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location","http://www.new-url.com");
    }
    </script> 
    

    您可以在此处阅读有关服务器端重定向的更多信息:

    分别用于 Microsoft Internet Information Services 和 Apache。

    【讨论】:

    • :) 干杯!是的,转换为 C# 应该非常简单!
    • 所以我将不得不保留 1.aspx(并在其中编写代码?)我不想保留 1.aspx......
    • 如果您不想保留代码,可以理解,您可以使用 htaccess 重定向或 apache 重定向(在链接中有简要说明)。如果您当然具有该级别的访问权限,基本上您只需要从该页面捕获服务器上的传入请求并将它们发送到新页面。
    • 您使用什么服务器技术? IIS或Apache或其他?这将极大地影响您实现这一目标的方式。
    【解决方案5】:

    301 将 1.aspx 重定向到 2.aspx。

    客户端重定向将强制您保留该页面。通过 IIS(或任何托管您的应用程序)进行的服务器端重定向将永久生成 1.aspx -> 2.aspx。你可以删除页面,没关系。

    【讨论】:

    • 您必须在 IIS 或托管您的应用程序的任何地方执行此操作。如果您有网络管理员,他可以为您执行此操作。如果页面的内容保持不变,但地址发生了变化,301 重定向是最好的选择。
    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多