对动态网站的所有问题,URL重写并不是万能的。特别地,URL重写本身没有解决任何重复内容问题。如果在对给定站点的URL地址进行动态请求时有重复内容问题,重写后表态URL地址的结果也将同样出现这个问题。从搜索引擎蜘蛛的角度来看,URL重写基本只能屏蔽参数。这对前面提及的带很多参数的URL地址是很非常有限的。然而无需多说,如果对参数进行各种隐藏不能使得内容上具有显著改变,同样的重复内容问题将依然存在。
重写在多个种类中都存在的产品网页,就是这样的一个简单实例。显然,即使通过看似静态的链接访问,如下所示的这两个网页可能会显示重复:
http://www.example.com/products/college-books-co/some-book-title-p2.html
http://www.example.com/products/out-of-print-books-c2/some-book-title-p2.html
另外,当含有重复内容时,使用看拟静态的URL地址实际上可能使问题更加严重。这是因为动态URL地址中参数的值和名称十分明显,而重写后的静态URL地址则将它们屏蔽。例如,大家都知道,当搜索引擎猜测某个参数是会话ID,就会尝试丢弃这个参数并消除重复内容。如果会话参数被重写,搜索引擎将完全无法做到这些。
对这个问题有一些解决方法,典型的方法包括删除那些可以被避免的参数,同时排除任何残存的重复内容。
站点投入运行并被检索之后,它的URL地址比它的标题和描述修改要难得多。正因为如此,当设计一个新网站时,需要特别注意这些事情。如果在事后再修改URL地址,那么需要将所有旧URL地址重定向到新地址,这会非常乏味的。更糟的是,如果做得不对,就会有可能影响排名,并且丢失链接价值。即使对URL地址结构做最细微的改变,都需要使用一些重定向来完成,因此只有在非常必要的情况下才能做这种改变。
这是一个相对简单的过程。简而言之,可以利用创建好的URL工厂,根据旧的动态URL地址参数来创建新的URL地址。这时可以对新URL地址使用一种叫作“301重定向”的方法。
因此,如果打算改造用来支撑已经被搜索引擎索引过的网站的WEB应用程序,就必须将这些旧的动态URL地址重定向到新的重写过的地址。这点特别重要,因为如果不这样做的话,每个网页都会产生复本从而导致一大堆的重复内容。然而,如果设计一个新的WEB站点,就能安全地忽略这个讨论。
详细讲述了在一个动态网站中如何逐步应用看拟表态的URL地址。这种URL地址不仅是搜索引擎友好的,而且对用户也更有吸引力。mod_rewrite和“URL工厂”协同使用就能完成这个任务。它还能强制保持URL地址的一致性。然而,重要的是,请注意URL重写不是所有动态站点问题的万能药——特别是重复内容问题。