在我的網絡應用程序中,我需要將所有網址重定向到特定頁面,但3個特定網址除外。將所有內容重定向到特定頁面,但某些網址除外 - Yii
我該如何在Yii框架中全局(無痛)地完成它?是否有可用於處理所有GET請求的基礎控制器?
我正在使用Yii 2.0。
在我的網絡應用程序中,我需要將所有網址重定向到特定頁面,但3個特定網址除外。將所有內容重定向到特定頁面,但某些網址除外 - Yii
我該如何在Yii框架中全局(無痛)地完成它?是否有可用於處理所有GET請求的基礎控制器?
我正在使用Yii 2.0。
我會用這種或類似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'
。
我的一位同事指出,這種操作最好在.htaccess級別上完成。我不確定我是否同意這一點,但上面的答案絕對能夠成功解決我遇到的問題。 – lesssugar
在配置/ main.php:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<controller>/<action1>'=>'<redirect>/<target1>',
'<controller>/<action2>'=>'<redirect>/<target2>',
'<controller>/<action3>'=>'<redirect>/<target3>',
'<url:(.*)>'=>'maintenance/index',
],
],
],
尋找[此](http://www.yiiframework.com/doc-2.0/guide-runtime-routing .html#default-route)? – cske
看起來可行。但是我可以使用'catchAll'來捕獲除3個URL路徑之外的所有請求嗎? – lesssugar
此外,該應用程序有大量的命名路由集,默認路由僅用於「空路由」。 – lesssugar