我想要什么
我希望对此类网址调用不同的操作
abc.com/ — Home page
abc.com/<argument-1>/<argument-2> — Search page
我有什么
这是我的web.php
路由配置和搜索索引操作。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
//Home page
'/' => 'site/index',
//Search
'<tag>/<location>' => 'site/search',
],
],
在abc.com/
我得到一个无限循环。
索引操作
/**
* Displays homepage.
*
* @return string
*/
public function actionIndex()
{
return $this->render('index', ['ip-info' => Locator::getLocation()]);
}
搜索操作
public function actionSearch(
array $tag = ['any'],
array $location = ['any'],
$display = 'list',
$sort = 'name'
) {
//...
//some actions to fill the variables.
//...
return $this->render('search', [
'data' => $data,
'display-type' => $display,
'sidebar' => $sidebar,
'countries' => $location,
'sort' => $sort,
'title' => $title,
]);
}
答案 0 :(得分:0)
问题是在各种情况下。 AJAX生成错误的路由请求,最近的'urlManager' => [
'baseUrl' => '/',
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => true,
'rules' => [
//Home page
'/' => 'site/index',
//AJAX
'ajax/<action:\w+>' => 'ajax/<action>',
//Search
'<tag:\w+>/<location:\w+>' => 'site/search',
],
],
提供循环。以下是工作规则的示例。
{{1}}