Cakephp url路由
我当前的网址是Cakephp url路由,cakephp,url-rewriting,pretty-urls,Cakephp,Url Rewriting,Pretty Urls,我当前的网址是 baseUrl/categories/category/categoryName/subcatName... 将此url转换为 baseUrl/categoryName/subcatName... 我在走下面的路线 Router::connect( '/:slug/*', array( 'controller' => 'Categories', 'action' => 'category' ), ar
baseUrl/categories/category/categoryName/subcatName...
将此url转换为
baseUrl/categoryName/subcatName...
我在走下面的路线
Router::connect(
'/:slug/*',
array(
'controller' => 'Categories',
'action' => 'category'
),
array(
'pass' => array('slug'),
'slug'=>'[a-zA-Z]+'
)
);
但这会给URL带来问题,比如:
baseUrl/home
baseUrl/myaccount ..
etc.
并将其重定向到类别操作。此问题的常见解决方案是添加一个字母(如Reddit) 这样,您可以选择以下路线:
Router::connect(
'/r/:slug/*',
array(
'controller' => 'Categories',
'action' => 'category'
),
array(
'pass' => array('slug'),
'slug'=>'[a-zA-Z]+'
)
);
没什么奇怪的-如果你想要一个像那样的catchall路由,最简单的解决方案是首先声明所有其他路由。
Router::connect(
'/r/:slug/*',
array(
'controller' => 'Categories',
'action' => 'category'
),
array(
'pass' => array('slug'),
'slug'=>'[a-zA-Z]+'
)
);