【问题标题】:dynamic seo title for news articles新闻文章的动态 seo 标题
【发布时间】:2010-09-27 14:46:59
【问题描述】:

我有一个新闻部分,页面解析为类似的网址

newsArticle.php?id=210

我想做的是使用数据库中的标题来创建对 seo 友好的标题,例如

newsArticle/joe-goes-to-town

有什么想法可以实现这一点吗?

谢谢,

R.

【问题讨论】:

  • 您使用的是哪种网络服务器?您是否使用某些 CMS 系统或服务器脚本?
  • 网站是用 HTML/PHP 构建的,还是使用 Joomla/Wordpress?你能用 PHP 编码还是在寻找插件解决方案?

标签: url seo url-rewriting title


【解决方案1】:

我建议您实际上在 URL 中将 ID 包含在标题部分之前,并在路由时忽略标题本身。所以你的网址可能会变成

/news/210/joe-goes-to-town

这正是 Stack Overflow 所做的,而且效果很好。这意味着标题可以更改而不会断开链接。

显然,确切的细节将取决于您使用的平台 - 您尚未指定 - 但基本步骤将是:

  • 生成链接时,获取文章标题并将其转换为对 URL 友好的内容;您可能想要删除所有标点符号,并且应该考虑重音字符等。请记住,标题不需要是唯一的,因为您也有 ID
  • 在处理以 /news 开头的任何内容的请求时,获取路径的下一部分,将其解析为整数并加载相应的文章。

【讨论】:

  • 另一个好处是它使检索更容易和更快 - 您只需使用数字 ID 而不是可能很长的字符串。
  • 这都是很好的信息。 linux中运行php的平台。任何指向何处开始的链接都会有很大帮助。
  • @Roscoeh:恐怕我对 PHP 的了解还不够,无法在这方面提供详细的建议。生成 URL 应该相当简单,但我不知道路由在 PHP 中是如何工作的。
  • 我只想跟进这个答案,说在 URL 中这么早包含虚拟内容通常不是一个好主意。关键字越靠近左侧,Google 对其的重视程度就越高。因此,在这种情况下,如果您出于某种原因(重复内容?)真的想保留 210,我的理想 URL 将是 /news/joe-goes-to-town-210。 StackOverflow 可以在实际关键字从字符 #41 开始的长 URL 中存活下来,但作为一个小型网站,您需要获得所有帮助,如果您想要自然流量,您的关键字必须位于左侧。
【解决方案2】:

假设您正在使用 PHP 并且可以更改您的源代码(这是获取文章标题的必要条件),我会执行以下操作:

首先,您需要有一个函数(或者可能是面向对象架构中的一个方法)来在您的代码中为您生成 URL。您需要为函数提供文章对象或文章 ID,它会返回带有 ID 和友好标题的友好 URL。
基本上是function url(Article $article) => URL。

您还需要一些 URL 重写规则来从 URL 中删除 PHP 脚本。对于 Apache,请参阅the mod_rewrite documentation 了解详细信息(RewriteEngineRewriteRuleRewriteCond)。

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    相关资源
    最近更新 更多