如何使打开的图形链接与301重定向一起使用

时间:2019-01-12 14:08:19

标签: vb.net seo facebook-opengraph http-status-code-301 twitter-card

我在VB.NET应用程序上使用了友好的URL,并且在社交媒体上共享了URL,并且图像预览工作正常。可以按以下方式共享链接:

example.com/news/123

example.com/news/123/hello-this-is-an-article

为避免同一文章的URL共享两个版本,我在301 redirect上创建了一个Pre_load,以将第一个链接重定向到第二个对应的链接。这样,我确保每个访问的URL末尾都包含文章标题。

在我应用此逻辑之后,结尾处没有文章标题的URL(第一个URL)不再在社交媒体上显示图像预览。 Twitter卡验证器 Facebook开放图调试器表示存在301重定向,未找到元标记。

以下是在页面Pre_Load上运行的代码:

'Comparing URL title with the actual Article title

If strURLTitle <> strArticleTitle Then 
'URL article title either changed or does not exist

    Response.Status = "301 Moved Permanently"
    Response.AddHeader("Location", "example.com/news/{ID-in-the-URL}/article-title")

End If

以下是我使用的示例HTML:

<meta name='author' content='test' />
<meta name='keywords' content='test,test,test' />
<meta name='description' content='test test test' />
<meta itemprop='name' content='test' />
<meta itemprop='description' content='test' />
<meta itemprop='image' content='https://example.com/img.jpg' />
<meta property='og:title' content='test' />
<meta property='og:description' content='test test test' />
<meta property='og:image' content='https://example.com/img.jpg'' />
<meta property='og:image:secure_url' content='https://example.com/img.jpg'' />
<meta property='og:image:width' content='780' />
<meta property='og:image:height' content='439' />
<meta property='og:site_name' content='test' />
<meta property='og:url' content='https://example.com/news/3710/here-is-the-title' />
<meta property='og:type' content='article' />
<meta property='og:locale' content='ar_AR' />
<meta name='twitter:card' content='summary' />
<meta name='twitter:site' content='https://example.com' />
<meta name='twitter:title' content='test' />
<meta name='twitter:description' content='test test test' />
<meta name='twitter:image' content='https://example.com/img.jpg' />
<base href='https://example.com' />

问题:

在Twitter Card Validator上测试链接(无文章标题)会产生以下日志:

  

信息:成功提取页面
  警告:未找到元标记
  警告:此卡已重定向到
  新闻/ 123 /你好,这是一篇文章

在Facebook Debugger上测试链接(没有文章标题)会产生以下日志:

  

响应代码400

获取的网址example.com/news/123

Canonical   网址
example.com/news/123/hello-this-is-an-article

重定向   路径
输入URL example.com/news/123 301 HTTP
  重定向example.com/news/123/hello-this-is-an-article

即使我共享一个没有标题的链接,有什么方法可以让打开的图形调试器逃脱301重定向或显示正确的结果吗?

1 个答案:

答案 0 :(得分:0)

由于我在URL中使用阿拉伯字符,因此我需要对URL进行编码才能使其在Facebook和Twitter上正常工作。

FIX:

Response.Status = "301 Moved Permanently"
Response.AddHeader("Location", "example.com/news/{ID-in-the-URL}/" & HttpUtility.UrlEncode(article-title))

<meta property='og:url' content='https://example.com/news/3710/encoded-url' />