【问题标题】:How to use meta refresh to an Ajax based URL?如何对基于 Ajax 的 URL 使用元刷新?
【发布时间】:2016-01-01 11:01:47
【问题描述】:

我正在尝试将一些精选帖子从我的博主 URL 重新定位到位于 Wix 网站的新博客。 我正在尝试使用元刷新标签来为我的每个博主帖子转移我的 SEO。

Blogger 不提供博客域之外的 301 重定向。因此我使用元刷新标签。

我注意到 Wix 的博客页面有基于 Ajax 的 URL 链接。我是否应该在 Meta Refresh 标签(在博客文章中)中提供带有“#!”的 URL(Wix 帖子的)?还是元刷新中的 URL 应该是带有“?_escaped_fragment_”的 URL?

以下哪些 URL 会将 SEO 从博主帖子转移到 Wix 帖子?

【问题讨论】:

  • 我投票结束这个问题,因为它是关于 SEO 的
  • 嗯@johnconde,这不是关于提升帖子的一般要点。这更具体地说明了在 URL 是 Ajax 的情况下元刷新标记如何工作​​。此外 SEO 是可用的标签之一。
  • 还有@johnconde,你能帮我解决这个问题的主题吗?
  • 你可以将它发布在 ProWebmasters 论坛上,不过,我倾向于同意你的观点,@Tivep - 这篇文章是关于重定向代码的最佳实践,所以在这里并不太合适。

标签: redirect seo url-redirection http-status-code-301


【解决方案1】:

如果您打算保留帖子的链接配置文件和搜索引擎优化价值,那么元刷新并不能完全取代 301 重定向。

不过,为了回答您的问题,Google 可以处理 hashbang (#!) 以及转义片段,具体取决于 Wix 网站的编码方式。您绝对应该参考 Google 的指南以使 AJAX 可抓取:

https://developers.google.com/webmasters/ajax-crawling/docs/learn-more

【讨论】:

  • 感谢@FarhadD,我之前已经浏览过该链接。它没有说明是否需要重定向到带有 hashbang 或 ?_escaped_fragment_= 的链接才能发生正确的 SEO。
  • 关键是你可以选择任何一种方法,只要你按照谷歌描述的步骤来确保hashbang URL是爬虫友好的。如果两者都同样简单,那么就提供最佳用户体验而言,选择权在您手中。也就是说,我经常发现 hashbanged URL 会给 SEO 带来更多麻烦,仅仅是因为正确处理它们的过程并不广为人知,而且不像使用常规 URL 参数那么简单
  • Tivep - 您找到问题的解决方案了吗?如果是这样,请您将其标记为答案。
  • 我做了,我已经回答了。
  • 谢谢。不幸的是,我认为这有点晚了,因为一旦赏金超时,社区就会自动选择不正确的答案。我只是希望在阅读其余答案之前没有人阅读并实施它,因为重定向脚本绝对不是处理这个问题的最佳方法。
【解决方案2】:

在head标签中使用如下代码:

<noscript>
<meta http-equiv="Refresh" content="3;url=yourpage.html">
</noscript>

【讨论】:

    【解决方案3】:

    请你看看这个,它可能对你有用:

    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head><title>
    
          Welcome Back
    
    title>
    
    <meta http-equiv="Refresh" content="2; URL=/wwstore/Profile.aspx" />
    
    head>
    
    
    
    You can add this into an ASP.NET page with code like this:
    
    
    
    // *** Create META tag and add to header controls
    
    HtmlMeta RedirectMetaTag = new HtmlMeta();
    
    RedirectMetaTag.HttpEquiv = "Refresh";
    
    
    
    RedirectMetaTag.Content = string.Format("{0}; URL={1}", this.Context.Items["ErrorMessage_Timeout"], NewUrl);
    
    this.Header.Controls.Add(RedirectMetaTag);
    
    
    
    But I never put 2 and 2 together to realize that the meta tag is actually mapping an HTTP header. A much easier way to do this is to simply add a header:
    
    
    Response.AppendHeader("Refresh", "4");
    
    
    
    Or refresh and go off to another page:
    
    
    
    Response.AppendHeader("Refresh", "4; url=profile.aspx");
    

    更多详情请看这里:http://weblog.west-wind.com/posts/2006/Aug/04/No-more-Meta-Refresh-Tags

    【讨论】:

    • 这个搜索是否友好?您是否有任何参考网站,我们可以在其中看到这一点,并验证它实际上是否以与 Google 上的 301 重定向相同的方式被拾取?
    • 实际上我通过实验证实,当您的“内容=2”时,这将被视为 302 重定向,因此链接汁不会传递。除了我不能添加这种程度的代码,因为它是一个博客页面。还是谢谢。
    【解决方案4】:

    Google 可以理解#! 符号。这不会是一个问题。

    如果你在谷歌上查询site:www.[something-made-with-wix].com,你会在结果中看到所有#!形式的链接。

    你可以试试this one作为例子。

    【讨论】:

      【解决方案5】:

      经过多次反复试验,我找到了自己问题的答案。

      这是我在旧的/url 上执行此操作时发生的情况

      <meta http-equiv="Refresh" content="2; URL=new/url/#!BlogPost" />
      

      这在 2 秒后进行了重定向,但经过数周的等待,旧的/url 继续显示在 google 上,而新的/url 从未出现过。

      然后我在旧的/url上尝试了这个:

      <meta http-equiv="Refresh" content="2; URL=new/url/?_escaped_fragment_=BlogPost" />
      

      这也没有用。 然后我想如果 content=n (n is a number than 0) ,这将被视为 302 重定向。这是一个临时重定向。

      所以我尝试了以下方法:

      <meta http-equiv="Refresh" content="0; URL=new/url/?_escaped_fragment_=BlogPost" />
      

      这是谷歌给出的奇怪反应。旧的/url 已从搜索结果中删除,新的/url 也无处可寻。这很糟糕,永远不要这样做。

      最后的选择是:

      <meta http-equiv="Refresh" content="0; URL=new/url/#!=BlogPost" />
      

      这终于成功了。几天后,链接汁从旧/url 传递到新/url。然而,重要的是去谷歌网站管理员并重新抓取旧/网址。只有这样,链接汁才会被传递。

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 2014-04-23
        • 2012-09-14
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多