채택완료

짧은주소를 위한 rewrite 룰 작성하는데 정규식을 잘 몰라서 도움 요청 합니다.

2022-12-11 (일) 19:18:01 2,464

rewrite ^/([0-9a-zA-Z_]+)/([0-9]+)$ /bbs/video.php?bo_table=$1&wr_id=$2&idx=$3&rewrite=1 break;

위의 내용을 참고하여 

bbs/video.php?bo_table=movie&wr_id=11&idx=1898

bbs/movie/11/1898 
이렇게 주소가 변경되도록 할려면 어떻게 수정해야 할까요??

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
htaccess 내용일거라 생각했는데 아니였군요 ^^;;
쓰신 것을 기준으로 생각했을 때

Copy
rewrite ^/bbs/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)$ /bbs/video.php?bo_table=$1&wr_id=$2&idx=$3&rewrite=1 break; //// 추가한 내용
위와 같이 맨 앞에  ^/bbs 를 추가로 넣어 보세요  정규식대로라면 홈페이지주소/bbs/movie( 첫번째 묶음 $1 )/11( 두번째 묶음 $2 )/1898 ( 세번째 묶음 $3 ) 위의 형식이 되어야 할거 같은데..

nginx 쪽이라 딱히 테스트할 환경이 안되다 보니 더는 도움이 못될거 같습니다 ^^;;

이런 급하게 하느라 잘못 썼네요 미안합니다

원래  앞에다 바뀌어질 링크를  그다음에 원본 주소를  적는 형태로 써야 되는데 뒤바꿔 썼네요

Copy
RewriteRule ^bbs/movie/([0-9]+)/([0-9]+) bbs/video.php?bo_table=movie&wr_id=$1&idx=$2 [L]

위와 같이 해보세요 안되면 글 남기세요 

bbs/movie/어떠한 숫자1/어떠한 숫자2  bbs/video.php?bo_table=movie&wr_id=어떠한 숫자1&idx=어떠한 숫자2 

위와 같은 형태로 링크가 연결되게 됩니다

답변에 대한 댓글 1개

죄송합니다.
설명이 충분하지 못했던것 같습니다.
[code]
#### ±×´©º¸µå5 nginx rules BEGIN #####
if (!-e $request_filename){
rewrite ^/shop/list-([0-9a-z]+)$ /shop/list.php?ca_id=$1&rewrite=1 break;
rewrite ^/shop/type-([0-9a-z]+)$ /shop/listtype.php?type=$1&rewrite=1 break;
rewrite ^/shop/([0-9a-zA-Z_\-]+)$ /shop/item.php?it_id=$1&rewrite=1 break;
rewrite ^/shop/([^/]+)/$ /shop/item.php?it_seo_title=$1&rewrite=1 break;
rewrite ^/content/([0-9a-zA-Z_]+)$ /bbs/content.php?co_id=$1&rewrite=1 break;
rewrite ^/content/([^/]+)/$ /bbs/content.php?co_seo_title=$1&rewrite=1 break;
rewrite ^/rss/([0-9a-zA-Z_]+)$ /bbs/rss.php?bo_table=$1 break;
rewrite ^/([0-9a-zA-Z_]+)$ /bbs/board.php?bo_table=$1&rewrite=1 break;
rewrite ^/([0-9a-zA-Z_]+)/write$ /bbs/write.php?bo_table=$1&rewrite=1 break;
rewrite ^/([0-9a-zA-Z_]+)/([^/]+)/$ /bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 break;
rewrite ^/([0-9a-zA-Z_]+)/([0-9]+)$ /bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 break;
rewrite ^/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)$ /bbs/video.php?bo_table=$1&wr_id=$2&idx=$3&rewrite=1 break; //// 추가한 내용
}
#### ±×´©º¸µå5 nginx rules END #####
[/code]

etc/nginx/conf.d/tv.conf
여기 파일에서 rewrite 설정해 줘야 하는 부분입니다.

rewrite ^/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)$ /bbs/video.php?bo_table=$1&wr_id=$2&idx=$3&rewrite=1 break; //// 추가한 내용
이 부분이 먹히지 않습니다.
/bo_table/wr_id/wr_id /// 이렇게 나오게하고 싶은데 나오지 않고 있습니다.

아래와 상황이 같습니다.

https://sir.kr/qa/341280

직접 테스트한게 아니라 될련지 모르겠습니다

Copy
RewriteRule ^bbs/video.php?bo_table=movie&wr_id=([0-9]+)&idx=([0-9]+) bbs/movie/$1/$2 [L]

wr_id와 idx에 숫자만 들어간다는 가정에 소괄호로 묶인 곳들이 $1  $2로 대응되어서 열립니다

RewriteRule 한칸 띄우고 bbs/movie/$1/$2 앞뒤로 한칸씩 띄어 써야 합니다

답변에 대한 댓글 2개

네 감사합니다.
한번 해 보겠습니다.
해 봤는데 잘 되지는 않습니다.
감사합니다.

https://sir.kr/qa/341280

여기 내용과 같은 내용 입니다.

답변을 작성하려면 로그인이 필요합니다.