创建 SEO 友好 URI 字符串的最佳方法
该方法应仅允许 URI 字符串中包含“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-
”字符。
制作漂亮的 SEO URI 字符串的最佳方法是什么?
The method should allows only "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-
" chars in URI strings.
What is the best way to make nice SEO URI string?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是普遍共识:
小写字符串。
标准化所有字符并删除所有变音符号(例如 é、ö、à 变为 e、o、a)。
用
-
替换所有剩余的非字母数字字符,并在必要时折叠。所以,总结一下:
This is what the general consensus is:
Lowercase the string.
Normalize all characters and get rid of all diacritical marks (so that e.g. é, ö, à becomes e, o, a).
Replace all remaining non-alphanumeric characters by
-
and collapse when necessary.So, summarized:
以下正则表达式将执行与您的算法相同的操作。我不知道有图书馆可以做这种事情。
The following regex will do the same thing as your algorithm. I'm not aware of libraries for doing this type of thing.
如果您想搜索更多信息,这些通常称为“slugs”。
您可能想查看其他答案,例如 如何从字符串创建 SEO 友好的短划线分隔网址? 和 如何让 Django slugify 正确使用 Unicode 字符串?
它们比 javascript 更多地涵盖了 C# 和 Python,但对 slug 约定和您可能遇到的问题进行了一些与语言无关的讨论制作它们时(例如唯一性、unicode 规范化问题等)。
These are commonly called "slugs" if you want to search for more information.
You may want to check out other answers such as How can I create a SEO friendly dash-delimited url from a string? and How to make Django slugify work properly with Unicode strings?
They cover C# and Python more than javascript but have some language-agnostic discussion about slug conventions and issues you may face when making them (such as uniqueness, unicode normalization problems, etc).