【发布时间】:2011-05-19 19:32:13
【问题描述】:
我正在将一个复杂的旧网站迁移到一个使用 codeigniter 编码的新网站,并且由于 codeigniter 的路由配置的工作方式,我面临着许多导致重复内容的 URL 重写问题。
我有这样的旧网址:
- /detail.php?id=ABCDE&lang=en&page=2
- /detail/ABCDE/en/2
新网站反而有 seo 友好的网址,例如:
- /en/products/hard-disks-2.html
在我的路线配置中:
- $route['(:any)/(:any)/(:any)'] = '控制器/$1/$2/$3';
- $url_suffix 是 '.html'
这会导致内容重复,因为:
- /zh/products/hard-disks-2
- /en/products/hard-disks-2.html
- /en/products/hard-disks-2.html?p=2
- /en/products/hard-disks-2?p=2
- /en/products/hard-disks-2.html/
- /zh/products/hard-disks-2.html/.html
以上所有都是 codeigniter 的有效路线,这导致网站内的重复内容。
有没有办法避免这种情况? 也许使用正则表达式?
我无法用 .htaccess 解决这个问题,因为网站有太多可能的 url 组合,而且我还有一些控制器,我仍然需要使用“get”参数。
【问题讨论】:
-
如果你从不链接重复的网址,谷歌将永远找不到它......
-
@Aren 很不幸,其他人或代码本身的一些错误会发生,这已经发生了;也有很多是因为旧网站是完全旧式的 /index.php?a=3&b=4 所以 .htaccess 不能承受所有参数来迁移 301 旧网址
标签: codeigniter seo web-crawler