我想让我的网址友好:
http://abc.com/I-want-to-make-my-url-friendly-like
和
http://abc.com/my-category/I-want-to-make-my-url-friendly-like
在Phalcon。
非常感谢。
答案 0 :(得分:1)
您可以在依赖自定义功能的路线上使用conversions
// 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);
}
);
答案 1 :(得分:0)
感谢Nikolaos Dimopoulos,您的回复意味着您将slugs转换为有效的功能。我找到了我的问题的答案(在我的项目中有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
)
);
如果有人可以对此进行优化,请将其作为另一个答案发布。