서브도메인 구축(?) 방법

서브도메인 구축(?) 방법

QA

서브도메인 구축(?) 방법

본문

https://sir.kr/qa/500434

 

위 링크의 질문 연장선이지만, 제가 머릿속에서 생각한 것이 글로 표현이 제대로 안된것 같아서 다시 요점만 간략하게 정리하여 드립니다.

 

[서브도메인을 이용하여 페이지 구성]

(1) 대표도메인, 서브도메인 모두 같은 회원/DB 테이블 사용

(2) 서브도메인 만들어놓음 (<?php phpinfo(); ?> 정상적으로 나옴)

(3) 게시판 및 멤버십 사용 안함, DB 사용안함

(4) 1개의 관리자에서 운용

 

abcd.com 에서 사용하는 header.sub.php, header.php, tail.sub.php, tail.php 를 사용하되

business.abcd.com 접속시 내용(content) 섹션만 변경되길 원함. 

 

 

-: abcd.com 구성
  └  root 
       ├ adm
       ├  bbs
       ├ css
       ├ data
       ├ extend
       ├ img
       ├ install
       ├ js
       ├ lib
       ├ mobile
       ├ plugin
       ├ skin
       ├ theme

       └ business 폴더
           ├ ???? 
           ├ ????
           └ ????

 

 

 

※ 2개의 그누보드를 설치하는것은 아님.

※ 독립적으로 운영하지 않음. 

이 질문에 댓글 쓰기 :

답변 3

그누위즈님 답변에 더해서 조건식 안내드리면 이런식으로 하면 될거같습니다


// 현재 도메인 이름을 가져옴
$domain = $_SERVER['HTTP_HOST'];
// 'abc'가 도메인 이름에 포함되어 있는지 확인
if (strpos($domain, 'abc') !== false) {
    echo "'abc'가 도메인에 포함되어 있습니다.";
} else {
    echo "'abc'가 도메인에 포함되어 있지 않습니다.";
}

우선 설명으로 다 알려드리긴 방대하여 간략하게 말씀드리자면,

현재 짜놓으신 구조로는

내용을 도메인별로 다르게 보여주고싶다. 인듯합니다.

도메인을 구분해서, 접속 도메인을 확인하시어

php 조건문으로

기본 = index.php

서브도메인 = business.index.php

파일을 불러오게 하시면 될겁니다.

방법을 다 설명드리는건 아닌거 같고

 

content정보는 각각 경로에 넣어둡니다. 기본경로에는 당연히 메인(index)가 들어갈테구요

content경로변수를 하나 만들어서 기본경로를 지정합니다.

 

먼저 $_SERVER['HTTP_HOST'];

를 이용해서 도메인을 가져옵니다.

 

그다음 변수에 담은 도메인이 서브도메인이 아닌 메인도메인 여부를 판별하여

기본값(메인도메인)에 content의 경로/파일정보를 넣습니다.

그외에 서브도메인은 각각의 서브도메인이 있을테니

explode를 이용해서 메인도메인값으로 잘라냅니다.

나머지가 서브도메인 명이 될테니

business 경로 하위에 서브디렉토리혹은 파일명을 이용해서 

content경로변수에 넣습니다.

 

index.php, head.php, tail.php 등등 기본값을 그대로 다 유지하고

content를 위치할 자리에만

include_once(contetn경로변수);

를 지정하빈다.

 

이렇게 하면 경로/파일을 서브디렉토리용으로 만드는건 content 경로 이외에는 만들지 않아도됩니다.

 

business폴더의 index.php 내 include_once 된 head.php의 정보를 현행 abcd.com에서 사용중인 head.php 를 그대로 가져와 사용하려면 경로가 어떻게 이루어져야 할까요? 아래처럼 하니 아무 응답이 없습니다.

<?php
include_once('./_common.php');

define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

include_once(G5_PATH.'/head.php');
?>

경로의 문제가 아닙니다.

다른 질문의 답변에도 답을 드렸듯이
도메인과 /웹서버에서 같은 디렉토리를 바라보게했으면

두개의 도메인이 동일한 내용이 나오는게 우선이고

HTTP_HOST에서 체크된 Domain의 정보를

메인도메인인지 서브도메인인지 판단해서
해당 content경로를 include하게 하면됩니다.

G5_PATH는 동일한 경로를 나타내야 정상이고

$content_path (임의로 만든변수) 변수에는 서브도메인에 따라서 분기시키는 경로가 들어가게 해서
해당 내용이

include_once(G5_PATH.$content_path."/추가할파일.php");
와 같은 패턴으로 보여지게 하셔야죠

답변을 작성하시기 전에 로그인 해주세요.
전체 123,478 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT