【发布时间】:2011-03-18 12:10:18
【问题描述】:
我在 modx 革命 php 框架中创建了一个网站,最近我在 apache 中添加了 Friendly Url 功能。
由于该网站是希腊语,我想在 url 中包含希腊字符,这对友好的 url 来说是一种有效的方法吗?还是会在未来引起问题?
edit:来自日本维基百科的示例链接 ディートリヒ・ブクステフーデ
【问题讨论】:
标签: php apache modx-revolution
我在 modx 革命 php 框架中创建了一个网站,最近我在 apache 中添加了 Friendly Url 功能。
由于该网站是希腊语,我想在 url 中包含希腊字符,这对友好的 url 来说是一种有效的方法吗?还是会在未来引起问题?
edit:来自日本维基百科的示例链接 ディートリヒ・ブクステフーデ
【问题讨论】:
标签: php apache modx-revolution
RFC 1738 文档的第 2.2 节指出:
因此,只有字母数字,特殊的 字符“$-_.+!*'()”和
用于他们的保留字符 可以使用保留用途
在 URL 中未编码。
您可以对 URL 中的其他字符进行编码,某些浏览器(例如 Chrome)通常会在地址栏中对它们进行解码。
但是,为确保 URL 在所有浏览器上都可读,您应该避免在 URL 中完全使用希腊字符 - 如果可能,请使用 US-ASCII 等效字符。
【讨论】:
这不是一个好主意。 urlencode 非 ASCII 字符(但这对 url 不太友好)或将它们转换为对应的 ASCII 字符。
$url = $server . $path . '/' . urlencode($greektext);
-
$arr1 = array('Α', 'α', 'Β', 'β', ...);
$arr2 = array('A', 'a', 'B', 'b', ...);
$url = $server . $path . '/' . str_replace($arr1, $arr2, $subject);
【讨论】:
%NN 进来时,我不会再称它为 url-friendly。当我无法输入非 ASCII 字符(例如,我没有可用的正确键盘布局)时,它们也是如此。