我向我们的SEO专家解释,cakephp网址结构是域/控制器/视图/参数
所以要查看特定产品,URL可能是这样的:
example.com/products/show/product-name-slug
然后,这会映射到show
上的products controller
函数,并以product-name-slug
作为参数,以便呈现正确的产品页。
他认为这很好但是问我是否可以命名控制器p
和视图d
,这样网址就是:
example.com/p/d/product-name-slug
因为这会使相应的关键字(product-name-slug)在整个网址上的比例更高。
我从SEO的角度理解他的来源,但从编程角度来看,这对控制器和视图单字母名称没有任何意义。
URL中不明确的控制器/视图名称是否会产生很大的不同?如果是这样,那么什么是妥协妥协的解决方案?
答案 0 :(得分:3)
配置中有其他路线:
example.com/seo/product-name-slug会让代码和搜索引擎优化人员感到高兴
Router::connect(
'/seo/:slug',
array('controller' => 'products', 'action' => 'show'),
array(
'pass' => array('slug')
)
);
答案 1 :(得分:0)
它会对您的网址产生重大影响。我从来没有使用过CakePHP的默认URL结构。默认情况下这样做很好,但它会产生不可接受的约束。
如果无法将操作映射到任意URL http://book.cakephp.org/2.0/en/development/routing.html#route-elements
,那么Cake不值得称为框架您甚至可以将regexp与操作匹配:
Router::connect(
'/:controller/:year/:month/:day',
array('action' => 'index', 'day' => null),
array(
'year' => '[12][0-9]{3}',
'month' => '0[1-9]|1[012]',
'day' => '0[1-9]|[12][0-9]|3[01]'
)
);