2016-08-08 4 views
3

ウェブアプリケーションでは、すべてのURLを3つの特定のURLを除いてリダイレクトする必要があります。一部のURLを除き、すべてのページを特定のページにリダイレクトする - Yii

Yii Frameworkではどのようにグローバルに(そして痛みを伴わずに)行うことができますか?すべてのGETリクエストを処理するために使用できるベースコントローラはありますか?

私はYii 2.0を使用しています。

+0

(http://www.yiiframework.com/doc-2.0/guide-runtime-routing .html#default-route)? – cske

+0

実行可能になります。しかし、3つのURLパスを除いて、すべての要求をキャッチするのに 'catchAll'を使用できますか? – lesssugar

+0

また、アプリには多くの名前付きルートが設定されており、デフォルトルートは「空のルート」のみに使用されます。 – lesssugar

答えて

5

私はこのまたは類似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'に移行します。 config/main.phpで

+0

私の同僚は、この種の操作は.htaccessレベルで行う方が良いと指摘しました。私はそれに同意するかどうかはわかりませんが、上記の答えは私が持っていた問題に確実に成功しています。 – lesssugar

0

'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

関連する問題