不管URL是静态的还是动态的,重要的是保持一致性。在动态URL的情况下,保持多参数URL中各个参数顺序的一致性非常重要。
在PHP中,查询字符串的参数通常用名称访问而非顺序访问。参数的出现顺序不影响PHP脚本的输出结果,除非特意考虑参数的顺序来编写脚本。下面有个示例,某个PHP网站使用不同的URL地址生成完全相同的内容:
http://cp.edo2008.com/r.php?f=企业模板&j=1
http://cp.edo2008.com/r.php?j=1&f=企业模板
如果r.php脚本分别用"$_GET[j]"和“$_GET[f]”来取得参数,这两个不同的URL地址会产生相同的内容。对URL参数的前后顺序并没有标准。如果这两种动态链接在WEB站点中同时使用,搜索引擎在检索不同的URL地址却发现相同的内容将会停止,这将导致站点遭到惩罚。
总之,保持一致性和遵循标准的参数顺序,来防止出现问题并提高排名将是明智之举。请思考以下实例中参数顺序的不同之处:
http://cp.edo2008.com/r.php?item[]=1&item[]=企业模板
这里,参数名称“item”用于指代一个PHP中数组“$_GET['item']”的。item数组在前者中包含元素(1,企业模板),,而在后者中包含元素(企业模板,1)。在这种情况下,搜索引擎无法认定这些URL地址是相等的——并且他们实际上也确实不是相等的。
编程人员也需要在文件名和查询字符串中保持一致性。搜索引擎能解决一些简单的差异,主要是因为windows中的文件名是大小写不敏感的。但是以下的URL地址在windows和Unix两种操作系统中就会有技术上的不同:
http://cp.edo2008.com/r.php?f=企业模板&j=1
和 http://cp.edo2008.com/R.PHP?F=企业模板&J=1
在有,保持一致性的风格是值得推荐的。开发人员在引用WEB网站目录时,也需要一致地使用标记“/”。例如,如果使用数字化重写URL,那么即使脚本能成功解析它们,也最好避免同时用以下两种链接来关联一个同样产品:
http://www.edo2008.com/seo/ 和 http://www.edo2008.com/seo
在实际应用中,搜索引擎能解决很多这种不明确性。因此无论如何,最好清除所有令人讨厌的不明确性。
为了加强整体一致性,可以为网站所需的每种类型的URL创建一个函数。通过这个函数的逻辑,URL地址将有一致的格式。一致性使得在robots.txt文件中排除文件更容易,因为前面遇到的顺序和大小写问题在同样适用。
例如,创建一个电子商务网站时,可能会编写如下所示的一个函数:
function create_link($category_id,$product_id){
return 'product.php?category_id='.$category_id.'&product_id'.$product_id;
}
在整个网站中使用这个函数,将确保所有链接都遵循一致的格式。
刚才create_link()函数的实现过于简单,以致在真实情况下没有什么实际的用处。如果想让URL地址得到更好的改进,就需要利用更高级的函数来配合URL重写。URL地址一致性的好处将同样适用。