2

假设我有一个控制器Articles和一个动作Search

我在routes.php中设置了路由器配置,如下所示:

Router::connect(
                 '/search/:search_term/*', 
                 array('controller' => 'articles', 'action' => 'search')
);

这样,当我导航到时,我可以在搜索结果中看到包含“ cakephp ”的文章标题http://localhost/search/cakephp

但是,如果我导航到http://localhost/articles/search/cakephp我会看到相同的结果。

我想要的是自动重定向到

http://localhost/search/cakephp

当我导航到

http://localhost/articles/search/cakephp

基于routes.php中的配置。

4

1 回答 1

0

你必须创建 .htaccess 重定向,因为你不能用路由做到这一点:

RewriteRule ^articles/search/(.+)$ /search/$1 [L,NC]

好的,我发现了一些东西,但不太确定它会起作用:

Router::redirect(
    '/articles/search/*',
    '/search/',
    array('persist' => true)
);
于 2012-11-12T12:33:29.050 回答