是否可以创建INTERNATIONAL永久链接?
我想知道我们如何处理国际站点上的永久链接。永久链接是指一些唯一且易于阅读的链接。
例如。对于英语短语来说没有问题,例如/ product / some-title /
但是如果产品标题是中文,该怎么办?
我们如何处理这个问题?
我正在建立一个国际站点,一个要求是拥有人类可读的URL。
谢谢你的每条评论
解决方案
如果有存储空间,则只能在URL中使用英文字母。有一个讨论可以改变这一点,但是我很肯定它还没有实现。
就是说,我们需要有一个查询表,我们可以在其中将产品/标题的翻译分配给其他语言中将要使用的任何单词。例如:
foo.com/cat将需要翻译以查找" cat"," gato"," neko"等。
然后,将这些人类阅读对象解析为确切url的HTTP模块将根据翻译知道要提供的页面。
对这样的事情进行查找对我来说似乎是溢出来的。我无法为所有语言的所有不同单词创建查找。也许访问翻译API是一个好主意。
据我所知,由于URL的分隔符不允许在永久链接中使用外部字符,因此无法使用。
我们如何编码特殊字符?那些网址会被Google识别吗?
根据此规范,URL中不允许使用ISO Latin-1集以外的字符,因此中文字符串会立即消失。
产品名称可以本地化的地方,可以使用诸如<< DOMAIN> / <LANGUAGE> / DIR / <PRODUCT_TRANSLATED>`之类的URL,例如:
http://www.example.com/en/products/cat/ http://www.example.com/fr/products/chat/
伴随着mod_rewrite规则,效果如下:
RewriteRule ^([a-z]+)/product/([a-z]+)? product_lookup.php?lang=&product=
对于上面的第一个示例,此规则将调用product_lookup.php?lang = zh-CN&product = cat
。在此脚本中,我们可以访问内部翻译引擎(在这种情况下,通过lang参数,即en)来进行与面向用户端的翻译相同的翻译,例如法语页面,英语上的"猫"等。
使用外部翻译API是一个好主意,但要获得在业务领域中正常运行的可靠API则很困难。 Google已经开放了翻译API,但目前仅支持有限的几种语言。
English <=> Arabic English <=> Chinese English <=> Russian
像/ productid / {product-id-number} / some-title /
该网站查看{number}而完全忽略" some-title"部分。我们可以将其放入我们喜欢的任何语言或者编码中,因为没有使用它。
我通常音译非ASCII字符。例如," tst"将变为" taest"。 GNU iconv可以为我们做到这一点(我确定还有其他库):
$ echo t?st | iconv -t 'ascii//translit' taest
trans,这些音译是与语言环境相关的:在德语以外的其他语言中,"?"例如,可以将其音译为简单的" a"。但另一方面,对于每个(常用)字符集,都应将其音译为ASCII。
看一下维基百科。
他们在URL中使用国家字符。
例如,俄语主页URL为:http://ru.wikipedia.org/wiki/_。当将URL发送到服务器时,浏览器透明地对所有非ASCII字符进行编码,并用其代码替换它们。
但是在网页上,所有URL都是人类可读的。
因此,我们无需执行任何特殊操作-只需将产品名称原样放入URL中即可。
网络服务器应该能够为应用程序自动解码它们。