好的,我不知道我是否采取了错误的方法,但我被困在这里......
我们已经开发了我们的网站,并且我们有许多需要 id 和特殊变量的控制器,链接已经重定向到通过预期的控制器。
新的要求是使用friendlyUrls,想法是,而不是:
http://domain.com/search/advanced/term:head/city:/set:show-all/sort:basic-relevance
它现在显示
或传递选项。
http://domain.com/search/in-edinburgh-scotland/by-rating/head
我的想法是,在 Routes.php 的开头有一个简单的 if 例如:
$friendlyUrl = $_SERVER['REQUEST_URI'];
$friendlyUrl = split('/', $friendlyUrl);
foreach ($friendlyUrl as $key => $params) {
if(empty($params)){
unset($friendlyUrl[$key]);
}
if($params == 'search'){
Router::connect('/search/*', array('plugin'=>'Search','controller' => 'Search', 'action' => 'advancedSearch', 'term'=>'head));
}elseif ($params == 'employers') {
# code...
}elseif ($params == 'employer-reviews') {
# code...
}elseif ($params == 'jobs') {
# code...
}
}
那没有用,然后我尝试在我的AppController中添加类似的东西,但什么也没有。
总而言之,必须做的是:
- 网址格式为:/search/{term}
- 实际上被重定向到:/search/advanced/{term}/city:{optional}/set:show-all/sort:basic-relevance
- 要继续阅读的网址栏:/search/{term}
有人有想法吗?!谢谢