2010-12-06 106 views
6

我正在开发一个使用CodeIgniter的电子商务网站。什么是用来创建搜索引擎友好网址的一般策略?CodeIgniter:SEO友好的网址

假设我有一个产品id123和产品名称32 in Sony TV。我只是做以下几点:

http://www.domain.com/product/123/32-in-sony-tv/ 

意思是,我有2个URI段。第一个用于识别实际产品。第二个被应用程序忽略(尽管内部链接,sitemap.xml等都以其友好的SEO形式引用该产品)。

对此提出建议?

+1

是什么让这个笨的具体情况? – robert 2010-12-06 01:26:31

+1

使用CodeIgniter内置的“URI路由”功能 - 请参阅下面的答案。 – NexusRex 2010-12-07 10:33:32

回答

11

我已经用CodeIgniter的URI路由解决了这个特定的问题,并取得了很大的成功。

当您创建新产品时,您应该将连字符名称(32-in-sony-tv)存储在数据库产品表的唯一索引字段中。创建连字符名称的函数应检查名称是否已被使用,并添加“-1”,“ - 2”,“-3”等,直到找到一个未被使用的字符串(例如:32-in-sony -TV-4)。

在你application/config/routes.php文件中加入:

$route['product/(:any)'] = "catalog/lookup_by_hyphenated_name/$1"; 

这将重新路由请求http://www.domain.com/product/32-in-sony-tvhttp://www.domain.com/catalog/lookup_by_hyphenated_name/32-in-sony-tv幕后,允许各种灵活性。

0

由于amazon.com完全相同的事情你正在考虑,我会说你是在一个很好的公司。

0

我正在开发一个带有CodeIgniter的网络应用程序,虽然它不是电子商务,但我也希望有更好的网址,因此罗伯特说亚马逊和其他大型网上商店都这么做,所以我如果它足够好,对我来说足够好:)

3

这完全取决于你希望你的网址看起来多么干净,以及你如何定义“干净”。如果你要摆脱的product_id URI段,并提出您的网址是这样的:

http://www.domain.com/product/32-in-sony-tv/ 

的基本区别是,你必须确保所有的产品都有独特的别名是永远改变。这意味着如果你有另一台32英寸索尼电视机,你必须给它一个稍微改变的别名。当然,如果您选择这样做,这将限制您将来无法更改别名。

还要记住,这是非常,非常非常不可能的,这些都会影响您的搜索引擎排名。你应该主要关注的是人类如何感知你的URL以及你在改变产品别名的过程中可能面临的两三年的任何陷阱。

由于您的客户(或您)可能想要对这些别名做什么的不可预测性,我会亲自坚持您所说的您使用的URL类型。我认为,更好的是在基于ID的系统上运行。

+0

这实际上很可能会影响您的搜索引擎排名! – NexusRex 2010-12-07 10:07:21

0

我用我所有的CI应用程序来做这件事,我会用NexusRex说的。这是最好的路线,是的,你的网址中的关键字会影响你的搜索引擎排名。