mod_rewrite로 url줄이기 작업중 질문드립니다.

mod_rewrite로 url줄이기 작업중 질문드립니다.

QA

mod_rewrite로 url줄이기 작업중 질문드립니다.

본문

벌써 몇번째 rewrite로 질문을 올리는지 모르겠네요 ㅎㅎ

회원님들 덕분에 조금씩 해결이 되어 진행중에 있는데요 또 한 번 막히는 부분이 있어 질문드립니다.

 

저희 사이트 리스트에 변수를 list_w_type만 받을때가 있고 list_region_type만 받을때가 있습니다.

그래서 아래와 같이 룰을 적용시키니 list_region_type은 안되더라구요.....ㅠㅠ

RewriteRule ^/hall/list/([a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_w_type=$1

RewriteRule ^/hall/list/([a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_region_type=$1

 

이럴경우 어떻게 룰을 변경해야 하는건가요? 조건문 같은거라도 있나요?

이 질문에 댓글 쓰기 :

답변 1

rewrite rule 을 잘 모르지만, 도움이 될까 싶어 남깁니다.

 

좌측의 패턴이 같으니, 그럴수밖에 없을 거라고 생각됩니다.

예를 들어, /hall/list/a123 은 첫번째 룰에도 해당이 되고, 두번째 룰에도 해당이 되는 패턴입니다.

 

첫번째 룰에서 적용이 일어나는 경우이니 list.htm?list_w_type=$1 으로 변환되고, 그 다음 줄의 내용까지는 가지 않을 것입니다.

(우선순위가 먼저 오는 것에 있을 것입니다.)

 

 

list_w_type 으로 변환해야될 때와, list_region_type 으로 변환해야될 때의 패턴이 조금이라도 달라야 합니다. 로직적인 부분의 재검토가 필요해 보입니다.

 

예를 들면 다음과 같은 처리를 생각해볼 수 있을  듯합니다.

 

RewriteRule ^/hall/list/(w[a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_w_type=$1

RewriteRule ^/hall/list/(r[a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_region_type=$1

 

알파벳과 숫자를 변환하되, w로 시작하는 경우는 w_type 으로, r 로 시작하는 경우로는 region_type 으로 

패턴이 서로 다르니 처리가 될 것입니다.

 

또는

 

RewriteRule ^/hall/list/w_type/([a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_w_type=$1

RewriteRule ^/hall/list/r_type/(r[a-zA-Z0-9]+)$ /home/thewedd/hall/list.htm?list_region_type=$1

 

식으로 룰을 줄 수도 있습니다.

 

이와같이 좌측의 패턴을 달리하는 방향으로, 로직을 재구성하는 것이 좋을 것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 119
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT