在我的Web应用程序中,我需要将所有URL重定向到特定页面,3个特定URL除外。我如何在Yii框架中全局地(并且轻松地)执行GET操作?是否有一个基本的控制器可以用来处理所有的GET请求?我用的是Yii 2.0。
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'。
'redirect/target'
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
ev7lccsx3#
下面的规则会将所有3个/exception{i}/bar/foo网址重定向到 exception 页面,而将其他所有网址重定向到 specific 页面。
/exception{i}/bar/foo
'urlManager' => [ 'rules' => [ '<url:(exception1.*|exception2.*|exception3.*)>' => '/path/to/3/exceptions/page', '<url:(.*)>' => '/path/to/specific/page', ], ],
顺序很重要。例外必须在一般规则之前。
3条答案
按热度按时间dfty9e191#
我将使用以下配置或类似的UrlManager配置:
通过这种方式,前3个规则不匹配的所有内容将由最后一个规则匹配,并转到
'redirect/target'
。bgibtngc2#
在config/main.php中:
参考:Found the solution here
ev7lccsx3#
下面的规则会将所有3个
/exception{i}/bar/foo
网址重定向到 exception 页面,而将其他所有网址重定向到 specific 页面。顺序很重要。例外必须在一般规则之前。