그누보드 하위에 워드프레스 설치했을때 nginx 설정 > IT 기술백서

/ 에 그누보드를 설치하고

/wp 에 워드프레스를 설치했다.

기본적으로는 그냥 돌아간다.

 

문제는 그누보드 5.4의 짧은 주소를 사용했을때 워드프레스에도 영향을 미쳐서 라우팅이 꼬여버린다.

그누보드에서는 아래의 rewrite 구문을 사용한다.

 

[code]

if (!-e $request_filename){ 

    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;

}

[/code]

 

여기에서  ^/([0-9a-zA-Z)]+) 이 구문이 워드프레스에도 적용이 되기 때문이다.

해결법은 if 문에 조건을 하나 더 달면 된다.

즉, “/wp 로 시작하지 않으면” 이란 조건!

 

[code]

if (!-e $request_filename && $request_uri !~ ^/wp){

 …

}

[/code]

 

짜잔~ …  안된다.

nginx 의 if 구문은 and or 이딴거 지원 안한다.

그래서 다음과 같이 했다.

 

[code]

set $test 0;

if (!-e $request_filename){

    set $test 1;

}

if ($request_uri !~ ^/wp) {

    set $test 1$test;

}

if ($test = 11) {

   rewrite ….

   rewrite ….

   …

}

[/code]

 

잘된다~!!

 

 

 

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤