yii2 urlManager统治三个参数,如何处理最后一个空参数?

问题描述 投票:1回答:2

我有一个类似于domain.com/calendar/2001/8/22的页面,可以通过以下方式访问

domain.com/calendar/2001
domain.com/calendar/2001/8
domain.com/calendar/2001/8/22

它将显示不同的内容。

我设置了urlManager规则:

'calendar/<year:[\-\d]+>' => 'calendar/view',
'calendar/<year:[\-\d]+>/<month:[\d]+>' => 'calendar/view',
'calendar/<year:[\-\d]+>/<month:[\d]+>/<day:[\d]+>' => 'calendar/view',

可以。但是当我访问domain.com/calendar/2008/8/时,它将得到404。(带有最后一个斜杠,我的网站用户经常以最后一个斜杠访问)。

如何设置urlManager?

yii2 yii-url-manager
2个回答
0
投票

您应该使用UrlNormalizer将“斜杠URL”重定向到“非斜杠URL”(反之亦然):

UrlNormalizer

它将所有“斜杠URL”重定向到“非斜杠URL”。如果要使用“斜杠URL”,则应将'urlManager' => [ 'enablePrettyUrl' => true,, 'normalizer' => [ 'class' => 'yii\web\UrlNormalizer', ], ], 设置为UrlManager::$suffix,然后UrlManager::$suffix会将“非斜杠URL”重定向到“斜杠URL”。

您可以在/中找到有关规范化的更多信息。


-1
投票

UrlNormalizer之后添加the guide。请注意,它将更改您网站上的所有链接。

© www.soinside.com 2019 - 2024. All rights reserved.