重定向所有内容到特定页面,除了一些URL- Yii

y53ybaqx  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(154)

在我的Web应用程序中,我需要将所有URL重定向到特定页面,3个特定URL除外。
我如何在Yii框架中全局地(并且轻松地)执行GET操作?是否有一个基本的控制器可以用来处理所有的GET请求?
我用的是Yii 2.0。

dfty9e19

dfty9e191#

我将使用以下配置或类似的UrlManager配置:

'urlManager' => [
    'enablePrettyUrl' => true,
    'rules' => [
        // your rule for specific URL #1,
        // your rule for specific URL #2,
        // your rule for specific URL #3,
        '<controler>/<action>' => 'redirect/target',
    ],
]

通过这种方式,前3个规则不匹配的所有内容将由最后一个规则匹配,并转到'redirect/target'

bgibtngc

bgibtngc2#

在config/main.php中:

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            '<controller>/<action1>'=>'<redirect>/<target1>',
            '<controller>/<action2>'=>'<redirect>/<target2>',
            '<controller>/<action3>'=>'<redirect>/<target3>',
            '<url:(.*)>'=>'maintenance/index',
        ],         
    ],
],

参考:Found the solution here

ev7lccsx

ev7lccsx3#

下面的规则会将所有3个/exception{i}/bar/foo网址重定向到 exception 页面,而将其他所有网址重定向到 specific 页面。

'urlManager' => [
    'rules' => [
        '<url:(exception1.*|exception2.*|exception3.*)>' => '/path/to/3/exceptions/page',
        '<url:(.*)>' => '/path/to/specific/page',
    ],
],

顺序很重要。例外必须在一般规则之前。

相关问题