/ 에 그누보드를 설치하고
/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]
잘된다~!!