我想让我的网址友好,例如:
http://abc.com/I-want-to-make-my-url-friendly-like
和
http://abc.com/my-category/I-want-to-make-my-url-friendly-like
在法尔孔。
非常感谢。
您可以在依赖自定义函数的路线上使用转化
// The action name allows dashes,
// an action can be: /products/new-ipod-nano-4-generation
$router
->add(
'/{category:[[a-z\-]+]/{slug:[a-z\-]+}',
array(
'controller' => 'products', // This can be any controller you want
'action' => 'show' // Same here
)
)
->convert(
'slug',
function ($slug) {
return str_replace('-', '', $slug);
}
)
->convert(
'category',
function ($category) {
return str_replace('-', '', $category);
}
);
感谢 Nikolaos Dimopoulos,您的回复意味着您将 slug 转换为有效功能。我找到了我的问题的答案(我的项目中有 3 个级别类别):
// Category
$router->add(
'/[a-z0-9-]{3,}/',
array(
'controller' => 'category',
'action' => 'index'
)
);
$router->add(
'/[a-z0-9-]{3,}/[a-z0-9-]{3,}/',
array(
'controller' => 'category',
'action' => 'index'
)
);
$router->add(
'/[a-z0-9-]{3,}/[a-z0-9-]{3,}/[a-z0-9-]{3,}/',
array(
'controller' => 'category',
'action' => 'index'
)
);
// Static post
$router->add(
'/[a-z0-9-]{3,}',
array(
'controller' => 'post',
'action' => 'view',
'slug' => 1
)
);
// Product
$router->add(
'/[a-z0-9-]{3,}/([a-z0-9-]{3,})',
array(
'controller' => 'product',
'action' => 'view',
'slug' => 1
)
);
$router->add(
'/[a-z0-9-]{3,}/[a-z0-9-]{3,}/([a-z0-9-]{3,})',
array(
'controller' => 'product',
'action' => 'view',
'slug' => 1
)
);
$router->add(
'/[a-z0-9-]{3,}/[a-z0-9-]{3,}/[a-z0-9-]{3,}/([a-z0-9-]{3,})',
array(
'controller' => 'product',
'action' => 'view',
'slug' => 1
)
);
如果有人可以对此进行优化,请作为另一个答案发布。