永久链接/ slug最佳实践

时间:2009-11-14 13:57:18

标签: sql internationalization slug permalinks

我即将在网站上设置永久链接,我想知道在现有的新闻报道表中应该遵循哪些约定。

到目前为止,这里是我提出的规则/步骤:

  1. 创建我的实时数据库的转储文件,在本地设置
  2. 使用ALTER table ADD column slug VARCHAR(100)在我的news_articles表中添加一个新的'永久链接'列(不确定数据类型或长度,建议?)
  3. 更新我的news_articles表格中的每一行,例如
  4. 默认情况下,永久链接列会在标题经过一些格式化之后被标题替换:

      

    免责声明:标题是俄语   西里尔文而非英文,所以我没有   我想我可以轻而易举地逃脱   正则表达式替换,除非我   依赖于unicode代码范围,除了我   不熟悉的范围   西里尔字母所以我会做手册   替换和我定义的规则   到目前为止:

    • 用下划线替换所有空格
    • 剥离前导/尾随逗号和句号
    • 删除所有单/双引号
    • 删除所有问号
    • &安培;成为'和'的俄语单词

    在我实际执行之前,我会对我目前的策略提出任何建议,因为有数千篇文章。

2 个答案:

答案 0 :(得分:3)

一些意见/建议

  • 用下划线替换所有空格 (如何炒作而不是下划线,如SO中的标签)
  • 剥离前导/尾随逗号和句点 (前导/尾随空格)
  • 删除所有单引号/双引号 (如果没有用连字符替换,则为起始和尾随)
  • 删除所有问号 (与上述相同,所有其他标点字符,如“”(左/右双引号)和符号,如%和=等等) < / LI>
  • &安培;成为'和'的俄语单词 (你的意思是必须是可读的而不需要url编码)

<强>更新
* 将所有字符转换为小写 (有点主观,但这是一种常见做法,比所有大写字母更具可读性)

还有一个建议,这是我用来检查我的url路径或slug是否包含任何urlencoded字符串的技巧。在制定了slug字符串之后,我将执行urlencode并与预编码的字符串进行比较。它们应该是一样的。

这篇文章的例子,如果slug恰好是“permalink-slug:best-practices”,那么urlencoded的那个将是“permalink-slug%3Abest-practices”,不是真的可读并且会破坏你知道/同意的slug的目的。所以很容易知道原始字符串不起作用,因为在urlencoding之后它是不同的。

答案 1 :(得分:3)

我认为问题是许多程序不允许使用unicode url ...维基百科在文本中使用这些字符..在浏览器中它们看起来不错但是在发送链接时它们变得很长... ...

http://th.wikipedia.org/wiki/%E0%B8%AA%E0%B9%89%E0%B8%A7%E0%B8%A1%E0%B9%83%E0%B8%99%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8%E0%B9%84%E0%B8%97%E0%B8%A2

我认为唯一好的解决方案是只转换为A-Z字母..其他语言只使用ID ..

如果有人为此提供了一个很好的解决方案,我很乐意听到它:)