2016-07-08 6 views
0

Я использую разбивку на страницы по умолчанию, то есть на сайте/индексе в yii2. Таким образом, URL генерируется линкером для вёрстки выглядит следующим образомYii2 Как удалить сайт/индекс и параметр страницы из url

domain.com/site/index?page=1 

Я хочу, чтобы удалить сайт/индекс и параметр страницы, так что она выглядит следующим образом

domain.com/1 


Я пытался писать правила в URL менеджер в конфигурационном файле, как этот

'site/index/<page:\d+>' => 'site/index' 

это сделал URL как следующий

domain.com/site/index/1 


Так, чтобы удалить сайт/индекс, а также, я установил маршрут пагинацией к «/» как этот

$pagination->route = '/'; 

Это снимало сайт/индекс с URL, но это опять-таки изменили URL, чтобы выглядеть

domain.com/?page=1 


Я попытался изменить правила в менеджере URL как этот

'/<page:\d+>' =>'site/index'; 

Но URL-адрес остался прежним. Мой вопрос заключается в том, чтобы сделать его похожим на

domain.com/1 

Я использую Yii2 расширенный шаблон и включен строгий разбор в менеджере URL.

ответ

0

Я получил это работает на моей локальной машине, используя следующую конфигурацию компонента:

'urlManager' => [ 
    'class' => 'yii\web\UrlManager', 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'baseUrl' => 'http://example.dev', 
    'rules' => [ 
     [ 
      'pattern' => '<page:\d+>', 
      'route' => 'site/index' 
     ] 
    ], 
] 

и SiteController:

public function actionIndex($page=NULL) 
{ 
    var_dump($page); 
    exit; 
} 
+0

Извините, но эта конфигурация не работает для меня. Я получаю страницу ошибки (# 404). Может быть, потому, что я '' enableStrictParsing'' установлен в 'true' в менеджере URL. –

+0

Я не понимаю, почему это было проблемой - вы могли временно установить для параметра enableStrictParsing значение false, чтобы проверить, является ли это проблемой. Вы заверили, что принимаете $ page в качестве параметра для своих действий? –

Смежные вопросы