목차
워드프레스 멀티사이트 한 계정에 그누보드, 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 내용이 뿌려지지 않고 루트에서 그누보드만 호출하게 되는 경우 모든 서브도메인이 그누보드 같은 비 워드프레스의 메인 페이지를 바라보게 되기 때문이다.
'WordPress' 카테고리의 다른 글
XE보드 모듈 이름은 영문+[영문+숫자+_] 만 가능합니다. 오류 해결 방법 (0) | 2020.08.28 |
---|---|
워드프레스 플러그인 Custom CSS & JS Plugin jquery 자바스크립트로 특정 태그 유입시 특정 페이지로 이동하는 스크립트. 301 리다이렉션 (0) | 2020.08.23 |
워드프레스 게시판 플러그인 kboard 애드센스 코드 삽입 방법 (0) | 2020.07.26 |
워드프레스 블로그 가비아에서 호스팅 받은 뒤 워드프레스 최신버전으로 업데이트 하기. (0) | 2020.07.19 |
카페24 워드프레스 플러그인 업데이트 오류 사이트 다운 복구하는 방법 (0) | 2020.02.20 |
댓글