도메인에 따라서 그누(영카트) 절대경로 바꿔주는 방법

도메인에 따라서 그누(영카트) 절대경로 바꿔주는 방법

QA

도메인에 따라서 그누(영카트) 절대경로 바꿔주는 방법

본문

안녕하세요~ 고수님들께 조언 여쭙니다.

영카트5 로 쇼핑몰을 운영중입니다. 하나의 쇼핑몰에 head와 tail 만 다르게해서

여러개의 도메일을 붙일려고 하는데요..

 

영카트 경로가

<?php echo G5_SHOP_URL; ?>/cart.php   이런식으로 되어 있어서..

호스팅에 붙인 대표 도메인으로 연결이 되더라구요.. 이것때문에 bbb.com 으로 접속을 해도

상품 클릭을 하면 결국 대표 도메인으로 연결이 됩니다. ㅠ

 

<?php echo G5_SHOP_URL ?> 이런식으로 붙어있는 절대경로를

config.php 에서 도메인에 따라 해당 도메인이 절대경로가 되도록 줄 수 없을까요?
 

제가 지금까지 연구해본 결과는...

아래 호스트를 읽어오는 php 소스를 이용하여..

 

<? if($_SERVER["HTTP_HOST"]=="www.aaa.com" || $_SERVER["HTTP_HOST"]=="aaa.com")  { ?>

<?php include_once('shop.head01.php'); ?>

<? } else if($_SERVER["HTTP_HOST"]=="www.bbb.com" || $_SERVER["HTTP_HOST"]=="bbb.com")  { ?>

 

<?php include_once('shop.head02.php'); ?>

<? } ?> 

 

이런식으로 head 에 도메인에 맞게 head를 불러오게 하고,,,

config.php 파일에도 이소스 응용해서.. aaa.com 도메인일 경우에 g5 절대경로를

aaa.com 으로 넣어주고... bbb.com 일때 bbb.com 으로 넣어주면

될 것 같기도 한데.. 어떻게 소스를 만들어야 할지 막막하네요..

 

혹시 방법이 있다면 바쁘시더라도 조언부탁드립니다.

참고로 호스팅에서 여러개의 도메인을 붙이는 건 가능합니다.

 

 

 

 

//  영카트5 config.php

 

<?php

?>
    상수 선언
********************/

define('G5_VERSION', '그누보드5');

// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);

if (PHP_VERSION >= '5.1.0') {
    //if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");
    date_default_timezone_set("Asia/Seoul");
}

/********************
    경로 상수
********************/

/*
보안서버 도메인
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
입력예) https://www.domain.com:443/gnuboard5
*/
define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', '');

/*
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요.
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
*/
define('G5_COOKIE_DOMAIN',  '');

define('G5_DBCONFIG_FILE',  'dbconfig.php');

define('G5_ADMIN_DIR',      'adm');
define('G5_BBS_DIR',        'bbs');
define('G5_CSS_DIR',        'css');
define('G5_DATA_DIR',       'data');
define('G5_EXTEND_DIR',     'extend');
define('G5_IMG_DIR',        'img');
define('G5_JS_DIR',         'js');
define('G5_LIB_DIR',        'lib');
define('G5_PLUGIN_DIR',     'plugin');
define('G5_SKIN_DIR',       'skin');
define('G5_CAPTCHA_DIR',    'kcaptcha');
define('G5_EDITOR_DIR',     'editor');
define('G5_MOBILE_DIR',     'mobile');
define('G5_OKNAME_DIR',     'okname');

define('G5_KCPCERT_DIR',    'kcpcert');

define('G5_SNS_DIR',        'sns');
define('G5_SYNDI_DIR',      'syndi');
define('G5_PHPMAILER_DIR',  'PHPMailer_v2.0.4');
define('G5_SESSION_DIR',    'session');

// URL 은 브라우저상에서의 경로 (도메인으로 부터의)
if (G5_DOMAIN) {
    define('G5_URL', G5_DOMAIN);
} else {
    if (isset($g5_path['url']))
        define('G5_URL', $g5_path['url']);
    else
        define('G5_URL', '');
}

if (isset($g5_path['path'])) {
    define('G5_PATH', $g5_path['path']);
} else {
    define('G5_PATH', '');
}

define('G5_ADMIN_URL',      G5_URL.'/'.G5_ADMIN_DIR);
define('G5_BBS_URL',        G5_URL.'/'.G5_BBS_DIR);
define('G5_CSS_URL',        G5_URL.'/'.G5_CSS_DIR);
define('G5_DATA_URL',       G5_URL.'/'.G5_DATA_DIR);
define('G5_IMG_URL',        G5_URL.'/'.G5_IMG_DIR);
define('G5_JS_URL',         G5_URL.'/'.G5_JS_DIR);
define('G5_SKIN_URL',       G5_URL.'/'.G5_SKIN_DIR);
define('G5_PLUGIN_URL',     G5_URL.'/'.G5_PLUGIN_DIR);
define('G5_CAPTCHA_URL',    G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
define('G5_EDITOR_URL',     G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);
define('G5_OKNAME_URL',     G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);
define('G5_KCPCERT_URL',    G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);
define('G5_SNS_URL',        G5_PLUGIN_URL.'/'.G5_SNS_DIR);
define('G5_SYNDI_URL',      G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);
define('G5_MOBILE_URL',     G5_URL.'/'.G5_MOBILE_DIR);

// PATH 는 서버상에서의 절대경로
define('G5_ADMIN_PATH',     G5_PATH.'/'.G5_ADMIN_DIR);
define('G5_BBS_PATH',       G5_PATH.'/'.G5_BBS_DIR);
define('G5_DATA_PATH',      G5_PATH.'/'.G5_DATA_DIR);
define('G5_EXTEND_PATH',    G5_PATH.'/'.G5_EXTEND_DIR);
define('G5_LIB_PATH',       G5_PATH.'/'.G5_LIB_DIR);
define('G5_PLUGIN_PATH',    G5_PATH.'/'.G5_PLUGIN_DIR);
define('G5_SKIN_PATH',      G5_PATH.'/'.G5_SKIN_DIR);
define('G5_MOBILE_PATH',    G5_PATH.'/'.G5_MOBILE_DIR);
define('G5_SESSION_PATH',   G5_DATA_PATH.'/'.G5_SESSION_DIR);
define('G5_CAPTCHA_PATH',   G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);
define('G5_EDITOR_PATH',    G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);
define('G5_OKNAME_PATH',    G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);

define('G5_KCPCERT_PATH',   G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);

define('G5_SNS_PATH',       G5_PLUGIN_PATH.'/'.G5_SNS_DIR);
define('G5_SYNDI_PATH',     G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);
define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
//==============================================================================


define('G5_USE_MOBILE', false); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
define('G5_USE_CACHE',  true); // 최신글등에 cache 기능 사용 여부
define('G5_SYNDI_USE',  true); // Syndication 기능 사용 여부


/********************
    시간 상수
********************/
// 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요.
// 하루는 86400 초입니다. 1시간은 3600초
// 6시간이 빠른 경우 time() + (3600 * 6);
// 6시간이 느린 경우 time() - (3600 * 6);
define('G5_SERVER_TIME',    time());
define('G5_TIME_YMDHIS',    date('Y-m-d H:i:s', G5_SERVER_TIME));
define('G5_TIME_YMD',       substr(G5_TIME_YMDHIS, 0, 10));
define('G5_TIME_HIS',       substr(G5_TIME_YMDHIS, 11, 8));

// 입력값 검사 상수 (숫자를 변경하시면 안됩니다.)
define('G5_ALPHAUPPER',      1); // 영대문자
define('G5_ALPHALOWER',      2); // 영소문자
define('G5_ALPHABETIC',      4); // 영대,소문자
define('G5_NUMERIC',         8); // 숫자
define('G5_HANGUL',         16); // 한글
define('G5_SPACE',          32); // 공백
define('G5_SPECIAL',        64); // 특수문자

// 퍼미션
define('G5_DIR_PERMISSION',  0755); // 디렉토리 생성시 퍼미션
define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션

// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
define('G5_MOBILE_AGENT',   'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');

// SMTP
// lib/mailer.lib.php 에서 사용
define('G5_SMTP', '127.0.0.1');


/********************
    기타 상수
********************/

// SQL 에러를 표시할 것인지 지정
// 에러를 표시하지 않으려면 FALSE 로 변경
define('G5_DISPLAY_SQL_ERROR', TRUE);

// escape string 처리 함수 지정
// POST 등에서 한글이 깨질 경우 addslashes 로 변경
define('G5_ESCAPE_FUNCTION', 'sql_real_escape_string');

// 게시판에서 링크의 기본개수를 말합니다.
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
define('G5_LINK_COUNT', 2);

// 썸네일 jpg Quality 설정
define('G5_THUMB_JPG_QUALITY', 90);

// ip 숨김방법 설정
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
표시되는 부분은 \\1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
다른 문자를 적어주시면 됩니다.
*/
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
?>​

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3

이미 작성해놓으신 대로

<? if($_SERVER["HTTP_HOST"]=="www.aaa.com" || $_SERVER["HTTP_HOST"]=="aaa.com")  { ?>

<?php include_once('shop.head01.php'); ?>

<? } else if($_SERVER["HTTP_HOST"]=="www.bbb.com" || $_SERVER["HTTP_HOST"]=="bbb.com")  { ?>

 

<?php include_once('shop.head02.php'); ?>

<? } ?> 

 

이런류의 방법이 맞을것으로 생각 되어 집니다.

head.php 적절한 위치에 넣으시면 될것 같습니다.

네 head 는 이렇게 하면 되는데.. 제가 궁금한건,, 그누의 <?php echo G5_SHOP_URL ?> 와 같은 절대 경로를 도메인에따라 바꿔 주는 방법이에요. 기본 도메인으로 aaa.com 으로 걸려있는 상태에서.. bbb.com, ccc.com 으로 head를 바꿔 각각의 도메인으로 모든 페이지를 돌아 다니게 해야하는데.. g5 절대경로로 잡혀잇는 부분때문에 결국 주소가 aaa.com 으로 바뀌더라구요. 그래서 저부분도 config.php 에서 도메인에 따라 g5절대 경로를 바꿔 줄수 있을 것 같은데..ㅠㅠ

절대경로는 바뀔수 없지 않을까요...

제가 콩태마루님이라면

head를 뒷받침 해줄수 있는 head_a~head_e를 만들고

head안에서 include를 해주고

if($_SERVER['http_host'])문으로 해결할것 같습니다.

답변감사합니다^^ 그런데 영카트는 그렇게 하기에는 상품리스트나 결제 등등 많은 페이지에서 기본으로 호스트를 불러오게 되네요.. 그래서 해드를 바꿔줘도 결국은 기본 도메인을 불러오게 되더라구요... 아직은 해결책을 못찾았어요....ㅠ

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

회원로그인

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