我重写了 URL 以包含用户生成的旅游博客的标题。
我这样做是为了 URL 的可读性和 SEO 目的。
http://www.example.com/gallery/280-Gorges_du_Todra/
第一个整数是 id,其余的是我们人类(但与请求资源无关)。
现在人们可以编写包含任何 UTF-8 字符的标题,但大多数都不允许在 URL 中。我的听众一般说英语,但由于他们旅行,他们喜欢包括像这样的名字
阿伊特·本·哈杜
什么是在 linux 上使用 PHP 在 URL 中显示的正确方法。
到目前为止,我已经看到了几种解决方案:
只是去掉所有不允许的字符,替换空格这会产生奇怪的结果:
'Aït Ben Haddou' → /gallery/280-At_Ben_Haddou/
不是很有帮助。只需删除所有不允许的字符,替换空格,留下字符代码(stackoverflow.com),很可能是因为使用了“regex-hammer”,
这会产生奇怪的结果:'tést tést' → /questions/0000/t233st-t233st
翻译为“最接近的等价物”
'Aït Ben Haddou' → /gallery/280-Ait_Ben_Haddou/
但这对德语来说是错误的;例如“ü”应音译“ue”。
对我来说,作为一个荷兰人,第三个结果“看起来”是最好的。
然而,我很确定(1)很多人会有不同的意见,(2)在德国的例子中这是完全错误的。
第三个选项的另一个问题是:如何找到可以转换为 7 位等效字符的所有可能字符?
所以问题是:
在您看来,最理想的结果是什么。(在技术限制内)
如何在技术上解决它。(达到预期的结果)用 PHP。