더 나은 프로그래머가 되자

RewriteRule, .htaccess 파일을 이용한 짧은 url 구현 본문

언어/PHP

RewriteRule, .htaccess 파일을 이용한 짧은 url 구현

greathuman 2016. 5. 18. 17:30

게시판과 같은경우(예:그누보드)

www.domain.co.kr/bbs/board.php?bo_table=notice

www.domain.co.kr/bbs/notice/list/1

 

등의 주소변경 혹은 GET방식의 변수전달이 아닌 디렉토리화 시켜서 보다 깔끔한 주소와

(뭐 요새 codeIgniter는 기본적으로 제공하기도 하지만..)

웹프로모션(?)적인 효과도 볼 수 있도록 rewriteRule을 사용하기도 한다.

 

 

 

### rewriteRule으로 htaccess 혹은 아파치 설정으로 간결한 URL 사용하기

 

. : 다수의 한문자
? : 0개 이상의 한문자
* : 0개 이상의 문자 또는 문자열 
+ : 1개 이상의 문자 또는 문자열 
(chars) : (, ) 안의 문자또는 문자열을 그룹으로 묶습니다. 이 문자그룹은 $N 의 변수로 활용할수 있습니니다. 
: 문자열의 첫문(열)을 지정합니다. 
: 문자열의 끝 문자(열)을 지정합니다. 
\(역슬래쉬) : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거합니다.(예:(, ), [, ] . 등) 
{n} : 정확히 n번 반복 
{n,} : n번 이상 반복 
{n,m} : n 이상 m 이하 반복 
[chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정합니다.
예) [a-z] : a 부터 z 까지의 소문자, [tT] : 소문자 t 또는 대문자 T 


RewriteEngine On  
RewriteRule ^good/list/([0-9]+)/([0-9]+)$ good.php?mode=list&code=$1&page=$2  
RewriteRule ^good/view/([0-9]+)$ good.php?mode=view&idx=$1  

RewriteRule ^bbs/write/([a-zA-Z0-9]+)/([0-9]+)$ board.php?code=$1&mode=write&g_idx=$2  
RewriteRule ^member/([^.]+)$ member.php?mode=$1  
RewriteRule ^serv/([^.]+)$ serv.php?mode=$1   

 

정규식 규칙명과 디렉토리명이 같을경우 계속 리디렉트가 된다

 

출처 : http://kanasii79.blog.me/140195534925

 

 

Comments