我使用cakephp 2.0的應用程序...
一切都很好,但我得到一些自定義URL或SEO友好的URL的問題。如何使用cakephp國際化與自定義URL和擴展
下面是我使用
Router::parseExtensions('html', 'rss', 'xml','json');
Router::connect('/:language/:controller/:action/*',array(),array('language' => 'eng|chi'));
Router::connect('/', array('controller' => 'homes', 'action' => 'index'),array('language' => 'eng|chi'));
Router::connect('/backend/*', array('controller' => 'users', 'action' => 'login', 'lab' => true));
Router::connect('/about-us/*', array('controller' => 'homes', 'action' => 'about_us'));
Router::connect('/contact/*', array('controller' => 'homes', 'action' => 'contact'));
Router::connect('/:slug', array('controller' => 'homes', 'action' => 'page'), array('pass' => array('slug'), 'slug'=>'[a-zA-Z0-9-]*'));
這裏路由規則「關於美」,「接觸我們」和第3和主要的一個是「:彈頭」(動態)
兩個問題:
- 當我試圖改變語言,輸入的網址顯示
lang/controller/action
(abc.com/eng/homes/about_us
),而不是abc.com/eng/about-us.html
或abc.com/chi/about-us.html
- 其他動態網址例如。
abc.com/page-1.html
,abc.com/page-2.html
,abc.com/page-3.html
等等......如何使用abc.com/lang/slug
與.html
(abc.com/eng/page-1.html
或abc.com/chi/page-1.html
)
爲此,我現在用的是
Router::connect('/:slug', array('controller' => 'homes', 'action' => 'page'), array('pass' => array('slug'), 'slug'=>'[a-zA-Z0-9-]*'))
規則。