- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我们有这个“博客”网站,我们正在为其构建一个 better URL scheme
。基本思想是将 URL 转换为 human and SEO friendly structure
。我有一个生成 URL slug
的函数根据帖子的标题。
一条记录现在在数据库中看起来有点像这样:
post_id post_title post_url_slug
--------------------------------------------------------------
1 Hello World hello-world
2 Another Post another-post
所以现在我们可以改变
http://<site>/post.cgi?action=read&id=1
至 http://<site>/post/read/hello-world
为了确保网址唯一,我们计划在其中附加 post_id。
现在http://<site>/post/read/hello-world
变成http://<site>/post/read/hello-world-1
所有这些都非常有效。我的主要问题是,如果博主修改了他的标题,我们应该如何处理?我们不想hello-world-1
显示一个完全不相关的帖子。
显而易见的解决方案是在编辑标题时重新创建 slug。但是我们将如何处理用户 bookmarks/google tracking/SEO crawling
?我们可以做 301 redirect
,但是保留 URL slug 更改的完整历史记录并像这样重定向它们很快就会变得难以管理。
此外,我真的更喜欢将路由/重写/重定向保留在应用程序内,而不是动态自定义 .htaccess 或其他内容。原因是,如果它在应用程序中出现问题,只有部分用户会遇到问题,但我们都知道当像 .htaccess
这样的文件时会发生什么。着火了!
有人有管理这种情况的见解/经验吗?非常欢迎任何意见!
最佳答案
我假设页面是根据 URL(特别是 id)动态创建的。在这种情况下,为什么不将页面 id 作为自己的段,即
http:///post/read/1/hello-world
然后,您可以允许 http:///post/read/1/another-hello-world 显示同一页面,或者让您的路由器检查 id 是否与标题匹配,如果不匹配,它会重定向到正确的 URL。
如果每个错误的标题都重定向到正确的 URL,那么您就不必保留更改历史记录。
除非它是唯一的,否则标题不应用于说明要显示的内容,而应使用唯一的 ID。
你也可以这样做http:///post/read/hello-world-1方法通过将“hello-world-1”转换为整数来检索“1”。然而,这意味着您必须从页面标题中过滤数字,而且我个人认为它看起来是一个更困惑的 URL。
编辑:我怀疑这就是 Stack Overflow 正在做的事情stackoverflow.com/questions/24637589/helloworld重定向到此页面 - 他们只需要“24637589”即可知道要显示的页面和网址。
关于java - 人类友好的唯一 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637589/
为了我们公司的 SEO 需求,我们需要通过 301 将一些 SEO URL 更改为另一个 URL。 示例: /seo/keywords-1-2-3/ 到 /seo/mynew301page-1-2-3
使已经开发的 Vue 应用程序对 SEO 友好的最简单方法是什么(搜索引擎可以读取所有标题元标记)。 我已经研究过 NUXT,我将不得不再次重新构建整个过程,而且除了 SSR(服务器端渲染)部分之外,
我正在使用 Azure 数据库进行一些数据库管理,我需要执行查询,例如删除数据库中的所有约束。 sp_MSForEachTable 在使用 Azure 数据库时不可用,因此我正在采用不同的方法来实现此
在我的研究中,我发现了 2 种方法。 两者都需要修改 Global.Asax 中的 Application_BeginRequest 过程,您可以在其中运行代码来进行实际的 URL 映射(我的数据库
例如我有这个字符串: make no@ sen# `se ! 我会像这样生成 url make-no-sen-se! 我有这个: var value = $('.titleVal').val(
我有一个网站,我想开始使用友好的 URL。 所以不是: http://server.com/company.php?id=12 我可以使用: http://server.com/company/ste
我正在用 pandas 编写一些数据分析管道。我一直在使用的数据框中的一列是由自定义编写的类的对象组成的,每个类都用一个字符串初始化,我用正则表达式从中读取各种信息并存储在对象的属性中。子类结构类似于
这个问题已经存在: C++ create new windows command [closed] 关闭 4 年前。 我正在尝试创建一个 C++ 控制台应用程序并创建新命令。 我想做的事的例子:在终
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
我一直在尝试为 prestashop 中的产品创建第二个 url 重写选项.在 SEO 和 URL 部分的标准 Prestashop 安装中,我得到了以下产品 url 构建: {category:/}
我在使用重写引擎通过友好的 url 实现我的目标时遇到了一些问题。 基本上我有以下结构:- 索引.php - 吃下 - index.php 我在主索引中的链接是这样的:下载/index.php?dow
我真的不喜欢在链接中使用选择/选项元素: 但是他们已经找到了作为一种选择进入设计师组合的方式,并尽我所能劝阻他们不要使用它们,我知道如果没有谷歌的力量,我会输掉这场战斗,而且“这对 SEO 不利”。
dispose: function() { var disposer; while (disposer = this._disposers.shift()) { // expected
我将 Heroku 应用程序上的自定义域更改为新域。现在我将创建一个新的 Heroku 应用程序,它的唯一目的是重定向到第一个应用程序。 我在 Google Webmasters 中读到我应该像这样进
我有一个类。这个类有2个字段。 我有一个整数数组。我的任务是重载友好的“+”运算符,以便可以将数组中的字段值与数组元素的值相加。 例如: class Test { public: double
这个问题在这里已经有了答案: Encode URL in JavaScript (22 个答案) 关闭 9 年前。 您好,我有这个 URL(顶部),我正在尝试与“pinterest”一起使用,他们会
jQuery 模式对话框 seo 友好吗?如果不是,我们可以进行哪些更改,以便爬虫可以轻松读取模态对话框中的内容? 提前致谢。 编辑:抱歉忘记提及模式中的内容来自服务器端。所以它也使用 ajax。 最
这是我的 main.js 文件: jQuery(function($) { $('LI.tree-item-name').has('ul').click(function() { if (
static func randomShape() -> Shape { // Find out count of possible shapes var maxValue = 0
我正在构建一个通过 index.php 运行所有代码的网站。 例如 index.php?controller=something&id=01234。 我想使用 PHP 创建友好的 URL,所以我这样做
我是一名优秀的程序员,十分优秀!