이전 사이트를 CodeIgniter로 변환하는 과정에서 이전 URL을 보존해야합니다. #, A-Z 또는 a-z 중 하나의 문자를 전달할 수 있어야합니다. 여기 내 패턴은 다음과 같습니다.CodeIgniter 경로에서 RegEx 사용
/^[a-zA-Z#]$/
내 모든 테스트에서 preg_match()에 전달하면 문제가없는 것 같습니다.
$route['(:any)/(/^[a-zA-Z#]$/)'] = "collection/view/$1/alpha/$2";
그것은 나에게이 오류주고있다 : 나는 단순히이 같은 CI 경로에 추가 내가 내 인생을 허용하는이 패턴을 마사지 할 수
Message: preg_match(): Unknown modifier '/'
를 CI에 동의합니다 그것. 나는 그것이 이상하게 도망 가고 있다고 생각한다. 어떤 도움을 주시면 감사하겠습니다.
UPDATE :
난 그냥 CI 패턴으로 무엇을하고 있었는지 볼 /core/Router.php에 뛰어 들었다. CI가 사용하는 것은 다음과 같습니다.
#^(.+)/(/^[a-zA-Z\#]$/)$#
전달 된 문자열 전체를 하나의 큰 패턴으로 변환합니다.
해결 :
CI가 하나 개의 큰 패턴을 만들려고 시도 것으로 파악 후 내가 처음부터 패턴을 재 작성 및 제거 (: 어떤). 나는 또한 #을 +로 대체했다. 여기에 내 마지막 해결책이 있습니다.
더 세련된 패턴을 가진 사람은 누구나 자유롭게 게시 할 수 있습니다. 감사!
는'#이'의 URL에서 특수 문자가, 내가 서버를 읽을 수 없기 때문에 당신이 경로에서 사용할 수 있다고 생각하지 않습니다 , 또는 그 이후에 오는 모든 것. –
제가 생각하기에 나는 #을 제거하고 a-zA-Z로 테스트를 시도했지만 여전히 일치를 얻지 못했습니다. – madzilla