2016-08-08 2 views
3

웹 응용 프로그램에서 모두 URL을 특정 URL 3 개를 제외한 모든 페이지로 리디렉션해야합니다.일부 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'로 이동합니다. 구성에서

+0

동료 중 한 명은 이런 종류의 작업이 .htaccess 수준에서 수행하는 것이 더 바람직하다고 지적했습니다. 나는 그것에 동의하는지 모르겠다. 그러나 위의 대답은 분명히 내가 가진 문제를 성공적으로 해결한다. – lesssugar

0

/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

관련 문제