2013-08-08 1 views
2

매우 이상한 문제가 있습니다. 로컬 서버 (PHP 5.3 및 5.4 모두 잘 작동 함)에서 작동하는 몇 가지 간단한 경로가 구성되었지만 배치 서버 (PHP 5.3.23)에서는 오류가 발생하여 Yii가 사전 구성한 기본 경로로 전환했습니다 (경로는 내가 내)가 정확했다 확신 해요,하지만 그들은 또한 다음과 같은 예외 여기 The URL pattern "<controller:\w+>/<id:\d+>" for route "<controller>/view" is not a valid regular expression.Yii : 경로의 URL 패턴이 유효한 정규 표현식이 아닙니다.

와 함께 실패 할 수 있습니다

'urlManager'=>array(
    'urlFormat'=>'path', 
    'rules'=>array(
     //'^$' => 'site/index', 
     //'<view:[\w\-\_\d]+>' => 'site/paged', 
     '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
     '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
     '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
    ), 
    'showScriptName' => true, 
), 

당신은 내가 확인하기 위해 내 두 개의 경로를 주석 한 볼 수 나는 어리석은 실수를하지 않았다.

무엇이 잘못 되었나요? 사람이 http://i.imgur.com/z0HtioQ.png

+2

예외가 발생하는 지점에서'$ this-> pattern'의 값을 검사하여 뒤로 작업을 시작하십시오. – Jon

+1

슬래시를 이스케이프 처리합니다. '\ /' – HamZa

+1

규칙 부분을 주석 처리하여 시험해보십시오. – Ninad

답변

1

짧은 조사 후를이 내가 발견 한 것입니다.

preg_match() Compilation failed: unknown option bit(s) set at offset 0 

내 구성 파일이 UTF-8 인 것으로 보입니다. 해결책은 PHP & PCRE를 업데이트하는 것입니다.

1

음 관심이 있다면


여기가 YII는 <controller>/view와 부분에 불만을 것 같다, 역 추적입니다. URL 규칙의 경우 _ 접두어가 붙은 특별한 자리 표시 자 (모듈, 컨트롤러, 작업의 경우)를 각각 _m, _c, _a과 같이 사용할 수 있습니다. 귀하의 경우에는 당신이 그런 일 사용할 수 있습니다

'urlManager'=>array(
    'urlFormat'=>'path', 
    'rules'=>array(
     //'^$' => 'site/index', 
     //'<view:[\w\-\_\d]+>' => 'site/paged', 
     '<_c>/<id:\d+>'=>'<_c>/view', 
     '<_c>/<_a>/<id:\d+>'=>'<_c>/<_a>', 
     '<_c>/<_a>'=>'<_c>/<_a>', 
    ), 
    'showScriptName' => true, 
), 
관련 문제