Yii使用漂亮的URL进行分页

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

除了分页之外,我已经实现了除了分页以外的所有URL。我一直在寻找包括Paging with custom urls 在内的解决方案,但它似乎对我不起作用。

我的.htaccess中有这个

        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?/$1 [L]

然后我在web.php文件中有这些规则

      ''=>'site/index',
        'site/<title:\w+>'=>'site/index'
        'site/<title:\w+>/<page:\d+>'=>'site/index',
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>/<slug:\w+>' =>    
        '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        'site/find/<slug>' => 'site/find',
        '/<slug>'=>'site/find',
        'defaultRoute'=>'site/index'

分页应该在站点索引上工作。我能错过什么?

php .htaccess pagination yii2 friendly-url
1个回答
1
投票

您的规则顺序不正确 - 您必须在更通用的规则(没有模式中的页面)之前放置更具体的规则(带有模式中的页面):

'' => 'site/index',
'site/<title:\w+>/<page:\d+>' => 'site/index',
'site/<title:\w+>' => 'site/index',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>/<slug:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'site/find/<slug>' => 'site/find',
'<slug>' => 'site/find',
© www.soinside.com 2019 - 2024. All rights reserved.