2015-01-19 2 views
2

я есть Двойники Url Mapping в Yii2:Yii2 Url Mapping Суффикс

'urlManager' => [ 
'enablePrettyUrl'  => true, 
'showScriptName'  => false, 
'rules'     => [ 
['pattern'=>'pages','route'=>'pages/index',   'suffix'=>'/'], 
['pattern'=>'pages/<id:\d+>','route'=>'pages/single', 'suffix'=>'.html'], 
]] 

Итак, URLs:

domain.com/pages/ - works fine 
domain.com/pages - E404 

domain.com/pages/321.html - works fine 
domain.com/pages/321  - E404 

Если я удалить параметр суффикс из массива конфигурации, а затем:

domain.com/pages/ - E404 
domain.com/pages - works fine 

domain.com/pages/321.html - E404 
domain.com/pages/321  - works fine 

Возможно ли сделать «суффикс» в ссылку необязательным, например «страницы» и «страницы /» будут выполняться в одном направлении? Спасибо.

ответ

0

Похоже, это невозможно достичь с настройкой правил в менеджере URL.

Пожалуйста, проверьте эти вопросы, связанные с Github:

https://github.com/yiisoft/yii2/issues/1807

https://github.com/yiisoft/yii2/issues/6498

Так выбрать один вариант, более подходящий для вас и использовать его.

Нужна косая черта или .html - добавьте suffix, иначе просто оставьте это как есть.

Также для поисковых систем

domain.com/pages/ 
domain.com/pages 

это две разные страницы и использовать это повлечет за собой дубликаты контента.

+2

Спасибо, как говорится в вопросах, я переместил эту логику на часть веб-сервера. Пример для Apache mod_rewrite: 'RewriteRule^pages $/pages/[R = 301, L]' – arkhamvm

+1

Рад помочь. Лучшее спасибо = upvote + accept. – arogachev