CI 묻고 답하기

제목 route 정규식 질문드리겠습니다.
카테고리 CI 2, 3
글쓴이 하하예에 작성시각 2017/07/13 15:17:20
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 12561   RSS

url : 도메인/UlxZXldCUA==/main

$route['([a-zA-Z]+[=]+)'] = 'main/rooms/$1';

 

암호화코드 : "UlxZXldCUA==" 

암호화 코드에 대해서 "[a-zA-Z]+[=]+" 이렇게 정규식을 잡아 라우팅할려고하는데요

"==" 이것때문인지 잘 넘어가질 않는데 정규식잘아시는분있으시면 간단한 팁을좀 알려줄수있을까요.^^

 

참고로 

url : 도메인/UlxZXldCUA/main

$route['([a-zA-Z]+)'] = 'main/rooms/$1';

이렇게하면 잘됩니다.

 

 다음글 쿼리를 조건문에 따라 추가하고 싶습니다... (2)
 이전글 페이지네이션에서 get방식으로 값을 얻어오면 현재 페이... (5)

댓글

유창화 / 2017/07/13 15:22:39 / 추천 0

[a-zA-Z]+[=]+

-->

[a-zA-Z=]+

이렇게 하면 되지 않을까 싶네요

하하예에 / 2017/07/13 15:25:35 / 추천 0
$route['([a-zA-Z=]+)']

아 이것도 해봤는데 안되요 ㅠㅠ

유창화 / 2017/07/13 15:39:34 / 추천 0

글세요

정규식 자체는 틀린게 없는데.....

$route['([a-zA-Z=]+)/([^/]+)'] = "$2/rooms/$1";

나 

$route['^([a-zA-Z=]+)/([^/]+)'] = "$2/rooms/$1";

로 해보면 어떨까요?

하하예에 / 2017/07/13 15:51:54 / 추천 0
뒤에 세그먼트문제는 아닌거같습니다. url의 ==를 컴파일못하는거같아서.. 흠 암호화 방식을 영문대소문자로 바꾸는 방법으로 가야할까요...
유창화 / 2017/07/13 15:57:35 / 추천 0

제 생각에는 저게 가운데 와서 그런거 같거든요

주소 체계를 

room/main/UlxZXldCUA==

형태면 먹을 거 같습니다.

앞에는 클래스고 뒤는 메소드니까

이름에 사용할수 없는 문자일 가능성이 높은 거 같습니다.

세번째 부터는 파라미터 개념이니까 상관없지 싶은데요?

하하예에 / 2017/07/13 16:03:35 / 추천 0

맞아요 room/main/UlxZXldCUA== 이렇게하면 잘 됩니다. 그럼 라우트 설정할필요도없죠

내부적으로 도메인/암호화코드/클레스/메소드로 규칙을 잡아놔서 이렇게 고생하고있어요. ㅎㅎㅎ

유창화 / 2017/07/13 16:06:29 / 추천 0

그렇다면

말씀하신데로

ci 에서 정할수 있는 클래스 이름 범위내의 문자로 암호화 하셔야 할것 같습니다.

암호화 형태는 base64 같아보이는데 / 도 있기 때문에 그건 아닐거 같고

= 을 _ 정도로 바꾸셔서 해보시면 좋을것 같습니다.

변종원(웅파) / 2017/07/13 16:08:57 / 추천 0
== 이 부분은 ci 세그먼트 주소에서 허용하지 않습니다. base64 처리했을 경우 에러가 나서 다른 것으로 치환을 해서 사용합니다.
하하예에 / 2017/07/13 16:09:38 / 추천 0
넵 그렇게 해야겠네요 도움감사합니다.^^