본문 바로가기
WordPress

워드프레스 멀티사이트 한 계정에 그누보드, XE 함께 쓰기 $_SERVER['HTTP_HOST'], explode()함수

by 하양동백 2020. 2. 21.

목차

    워드프레스 멀티사이트 한 계정에 그누보드, XE 함께 쓰기 $_SERVER['HTTP_HOST'], explode()함수

    딱히 그럴 일이 있을지는 모르겠지만, 워드프레스는 강력한 가상 서브도메인 기능을 제공하면서 서브도메인을 제공하지 않는 호스팅 서비스에서도 멀티사이트를 구축해서 서브도메인을 부여할 수 있다.

    그런데, 가끔....살다보면....

    워드프레스의 강력한 기능이 쓸 만하지만, 때로는 국산 게시판만으로 사이트를 구성해야 될 욕심이 생길 때가 있다.

    물론 당연히 워드프레스 멀티사이트는 그대로 둔 체 말이다.

    이때 제약 조건은 존재한다.

    비 워드프레스의 CMS툴로 설치된 일반 한국형 게시판 프로그램들 예컨대, XE, 그누보드 등은 멀티 사이트의 가상 서브도메인에 태울 수는 없다.

    다만, 약간의 응용을 통해서 게시판 종류별로 별도의 가상 서브도메인을 할당할 수는 있을 수 있다. (해 보진 않았지만, 불가능해 보이진 않는다.)

    일단은, 워드프레스가 멀티 사이트로 홈페이지가 구축되어 있는 상황에서, www.YuorDoamin.com 혹은 YourDoamin.com의 주소는 그누보드로 보내고, 나머지 서브도메인으로의 접속은 모두 워드프레스에게 넘기는 방법은 의외로 간단하다.

     $_SERVER ['HTTP_HOST']와 explode() 함수를 이용하는 방법이다.

    워드프레스를 root폴더에 설치해 두거나, 그누보드를 루트에 설치해 두거나, 어찌 되었든 간에 워드프레스는 서브도메인을 판단해서 행동해야 하기 때문에 root의 index.php를 선점해야만 한다.

    이때 워드프레스는 index.php 에

    define('WP_USE_THEMES', true);
    /** Loads the WordPress Environment and Template */
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    를 선언해 두고 워드프레스의 환경을 불러들인다.

    반면에 그누보드는 애당초 처음부터 멀티 사이트에 대한 고려가 없었기 때문에, 오직 자신의 헤더와 테일 그리고 본문 내용의 인클러드에 집중한다.

    php에서는 $_SERVER ['HTTP_HOST'] 변수를 통해서, 현재 자신의 URL 주소 값을 리턴한다.

    그리고 이 주소에서 도메인은 불변이라고 가정한다면, 자신의 주소에서 도메인 문자열을 날려 버리면, 오롯이 서브도메인 값이 남게 된다.

    이때 사용할 php 함수는 explode다, split도 같은 동작을 하지만, 익스플로드의 동작 속도가 훨씬 빠르다.

    $tmpUrl = $_SERVER['HTTP_HOST'];
    $arrUrl = explode('YourDoamin.com',$tmpUrl);

    이렇게 할 경우.

    sub1.YuorDoamin.com으로 접속하는 워드프레스 멀티 홈페이지의 주소의 $arrUrl [0] 값은 'sub1.'이 된다.

    이 문자열 값을 판별해서 혹은 길이만 판별해서 $arrUrl[0]의 문자열 길이가 0일 경우에는 그누보드의 index.php 내용을 뿌려주고 나머지(else)의 경우에는 워드프레스의 index.php의 내용을 뿌려주면 된다.

    왜 이렇게까지 해야 하냐면, 워드프레스의 index.php 내용이 뿌려지지 않고 루트에서 그누보드만 호출하게 되는 경우 모든 서브도메인이 그누보드 같은 비 워드프레스의 메인 페이지를 바라보게 되기 때문이다.

    베이글녀 레이싱모델 최별하 몸매 굿 짤방 레이싱모델 시리즈 3 /1783

    반응형

    댓글