我已經建立了我的CakePHP的網站CakePHP的路由多語種博客與規範鏈接
Router::connect('/:language/blog', array('controller' => 'posts', 'action' => 'index'), array('language' => 'en', 'persist'=>array('language')));
Router::connect('/:language/blogue', array('controller' => 'posts', 'action' => 'index'), array('language' => 'fr', 'persist'=>array('language')));
Router::connect('/:language/blog/:post_id', array('controller' => 'posts', 'action' => 'view'), array('language' => 'en', 'persist'=>array('language', 'post_id')));
Router::connect('/:language/blog/:post_id/:slug', array('controller' => 'posts', 'action' => 'view'), array('language' => 'en', 'persist'=>array('language', 'post_id', 'slug')));
Router::connect('/:language/blogue/:post_id', array('controller' => 'posts', 'action' => 'view'), array('language' => 'fr', 'persist'=>array('language', 'post_id')));
Router::connect('/:language/blogue/:post_id/:slug', array('controller' => 'posts', 'action' => 'view'), array('language' => 'fr', 'persist'=>array('language', 'post_id', 'slug')));
這使我的URL像/en/blog
或/fr/blogue
以下途徑有沒有辦法從出現在URL中刪除語言和它只是顯示/blog
或/blogue
(但仍然堅持語言參數)?
如果這是不可能的,我可以住在保持url中的語言,但接下來的這一點非常重要。我有這樣的事情在我<head>
echo '<link rel="canonical" href="'. Router::url($this->request->here true) .'">';
,我想包括SEO規範網址。我希望規範網址只是/blog/123
,但它總是顯示爲當前網址即ie。 /en/blog/123/article-slug
或/fr/blogue/123/article-slug
。有誰知道我怎麼能得到想要的行爲? (方問題:?不取出塞部分從規範網址打敗使用友好的URL搜索引擎優化的目的)
閱讀文章:http://bakery.cakephp.org/articles/kicaj/2013/01/27/internationalization_with_static_and_dynamic_content_routing_and_switching或http://博客.kdev.pl/2013/02/internacjonalizacja-statyczna-i.html – kicaj