【发布时间】:2011-05-09 16:55:21
【问题描述】:
PHP 中是否有预先存在的用于 URL 规范化的函数或类?
具体来说,遵循wikipedia article on URL normalization 中规定的语义保留规范化规则,(或我应该遵循的任何“标准”)。
- 将方案和主机转换为小写
- 转义序列中的字母大写
- 添加尾随 /(到目录,而不是文件)
- 删除默认端口
- 删除点段
现在,我想我将只使用 parse_url(),并单独应用规则,但我宁愿避免重新发明轮子。
【问题讨论】:
-
@ajreal 不,不是
<link rel="canonical"...>。只是,规范化 URL,例如,从 API 请求有关它的数据,特别是那些需要对 URL 进行哈希处理的数据,因此如果您不使用规范化 URL,您将得到不准确或没有结果。 -
@yc :
http://stackoverflow.com和http://stackoverflow.com//之间的区别是什么?你能提供更多你尽量避免的网址示例吗? -
巨大的差异!前者散列 (md5) 为 57f4dad48e7a4f7cd171c654226feb5a,后者散列为 8b34e6ecb6898f39350c1264d6d7aa6c。就我而言,它们是不同的 URL,即使服务器会解决差异。有一个链接到的标准,旨在创建规范化的 URL。我不是在这里发明一个概念。有一整篇 wiki 文章专门讨论这一现象。
标签: php url normalization