我有一个类似于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?
您应该使用UrlNormalizer
将“斜杠URL”重定向到“非斜杠URL”(反之亦然):
UrlNormalizer
它将所有“斜杠URL”重定向到“非斜杠URL”。如果要使用“斜杠URL”,则应将'urlManager' => [
'enablePrettyUrl' => true,,
'normalizer' => [
'class' => 'yii\web\UrlNormalizer',
],
],
设置为UrlManager::$suffix
,然后UrlManager::$suffix
会将“非斜杠URL”重定向到“斜杠URL”。
您可以在/
中找到有关规范化的更多信息。
在UrlNormalizer
之后添加the guide。请注意,它将更改您网站上的所有链接。