만들어진 홈페이지에 모바일용 사이트를 추가로 리다이렉션 하려면?? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

만들어진 홈페이지에 모바일용 사이트를 추가로 리다이렉션 하려면?? 정보

만들어진 홈페이지에 모바일용 사이트를 추가로 리다이렉션 하려면??

본문

그누고수님들 안녕하십니까.

모바일용 추가 포워딩에 관련하여 여쭈어 보고자 글을 올립니다.

현재 그누보드4를 기반으로 만들고 있는 홈페이지가 있는데

여기에 추가로 모바일용 디자인도 같이 올리려합니다.

도메인 포워딩 부분은 호스팅 업체에서 추가 포워딩을 하면 m.naver.com 처럼

도메인은 생성된다고 하는데

문제가 PC용과 같이 연동된다고 합니다.


호스팅 업체에서는 리다이렉션 해야 한다고 하는데
그 태그가 지금 사용하고 있는 태그와 같더군요..

결국 하나의 자료들을 2개의 도메인으로 다 연결되는 것 밖에 안되더라구요 ㅠㅠ


여쭙고자 하는 문의는 현재 http://www.도메인.com을 입력하면
 gnuboard/index.php 가 연결되는데
이를 보전하면서

동일 FTP에서 그누보드안 추가 폴더에
http://m.도메인.com 을 입력시
 gnuboard/mobile(폴더경로)/main.php 가 연결되었으면합니다.

방법이 어떻게 될까요..

현재 root에 있는 index.html엔

--------------------------------------------------------------------------
<HTML>
<HEAD>
<title> 47기 모임공간 </title>

</HEAD>
<frameset rows="*" border=0>
<frame name=main src='/gnuboard/'>
</frameset>
</HTML>

--------------------------------------------------------------------------
으로 되어 있습니다.
pc용이구요..

PC용 유지 하면서 모바일용은 어찌 연결해야 할까요..??

선생님들의 가르침 좀 부탁드립니다!!

댓글 전체

두가지 방법이 있습니다.  php 로 하거나 자스로 하거나.

php

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");   
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); 
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");   
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry"); 
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");       

if ($iphone || $android || $palmpre || $ipod || $berry == true)
{

header('Location: m.도메인.com');
}


자스

if($(window).width() < 480){

window.location = "m.도메인.com"

}

님이 하시고자 하는거는 모바일 detection 이란건데, php 의 경우 자스와 달리 브라우저 information 을 읽을 수 없기 때문에 UA (user agent) 를 detecting 해주는 겁니다.

저의 예제의 경우 거의 안드로이드 나 아이폰은 잘 되는데, 가끔 잘 알려지지 않은 스마트폰의 경우는 detecting 을 하지 못합니다.

이걸 100% 완벽하게 하시려면 모바일 detecting 을 해주는 library 를 써서 하셔야 합니다.

이런걸 쓰셔야 합니다.

https://code.google.com/p/php-mobile-detect/

골아프시죠?  네. php 로 하려면 많이 복잡해 집니다.

그러니까 간단하게 자스로 하시면 됩니다. 

if($(window).width() < 480){

window.location = "m.도메인.com"

}

딱 2줄.  ㅎㅎㅎㅎ 자스로 하시면 무지 간단합니다.  설명을 드리자면

if($(window).width() < 480){

if : 만약 window 윈도우 width 넓이가 <480 480 픽셀보다 적을경우

window.location = "m.도메인.com"

윈도우 주소는 m.도메인.com 이 되어야 한다 (=)
밑에 자스 부분 두줄을 루트(index.html)에 추가하면 되는 건가요??

그리고 모바일용 페이지들은 gnuboard/mobile(모바일용 폴더)에 있는 main.php 및 이미지 등을 넣으면 되나요?

<HTML>

<HEAD>
<title> 47기 모임공간 </title>
</HEAD>

<frameset rows="*" border=0>
<frame name=main src='/gnuboard/'>
</frameset>

if($(window).width() < 480){

window.location = "도메인.com/mobile/main.php"

}

</HTML>

이 태그가 맞나요??
자스는 <head></head> 사이에 넣으시던가, </html> 바로 위에 넣으시던가.

그리고 자스는 <script></script> 사이에 작성을 하셔야 합니다.

무슨 얘기인지 모르실 것 같아서, 직접 코드를 살펴보시고 똑같이 따라하시라고 올려놨습니다.

http://hackya.com/lab/mobile.html  (PC 접근시 그냥 이주소에 머물고, 모바일폰으로 접근시, http://m.naver.com/ 로 이동)

소스코드 보기 하시던가 (F12) 다운 받아서 똑같이 따라하시면 됩니다.
1차시도 : 처음 FTP에 있는 index.html 에아래와 같이 적용

===========================================================================================
<HTML>
<HEAD>
<title> 47기 모임공간 </title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<script>
if($(window).width() < 480){
window.location = "http://m.naver.com/"
}
</script>

</HEAD>
<frameset rows="*" border=0>
<frame name=main src='/gnuboard/'>
</frameset>
</HTML>

===========================================================================================


2차시도 : 처음 index.html 을

<HTML>
<HEAD>
<title> 47기 모임공간 </title>

</HEAD>
<frameset rows="*" border=0>
<frame name=main src='/gnuboard/'>
</frameset>
</HTML>

복구 시킨후

gnuboard/index.php 에 아래와 같이 적용 시도
===========================================================================================

<?
include_once("./_common.php");
include_once("$g4[path]/lib/latest.lib.php");
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/outlogin.lib.php");
include_once("$g4[path]/lib/poll.lib.php");
include_once("$g4[path]/lib/visit.lib.php");
include_once("$g4[path]/lib/connect.lib.php");
include_once("$g4[path]/lib/popular.lib.php");

//print_r2(get_defined_constants());

// 사용자 화면 상단과 좌측을 담당하는 페이지입니다.
// 상단, 좌측 화면을 꾸미려면 이 파일을 수정합니다.

$table_width = 1004;
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>47기 모임공간 </title>
  <META name="keywords" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="">
  <meta name="author" content="">

<style type="text/css">
body {margin-left:0;margin-right:0;margin-top:0;margin-bottom:0};
</style>

<!--link rel="stylesheet/less" href="less/bootstrap.less" type="text/css" /-->
<!--link rel="stylesheet/less" href="less/responsive.less" type="text/css" /-->
<!--script src="js/less-1.3.3.min.js"></script-->
<!--append ‘#!watch’ to the browser URL, then refresh the page. -->

<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">

  <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
  <!--[if lt IE 9]>
    <script src="js/html5shiv.js"></script>
  <![endif]-->
 
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>

<script language="JavaScript" type="text/JavaScript">
<!--

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>

<!-- 브라우저 창닫기 스크립 시작 -->
<script type="text/javascript">
<!--
<!--
function closeWin() {
    var nvua = navigator.userAgent;
    if (nvua.indexOf('MSIE') >= 0){
        if(nvua.indexOf('MSIE 5.0') == -1) {
            top.opener = '';
        }
    } else if (nvua.indexOf('Gecko') >= 0){
        top.name = 'CLOSE_WINDOW';
        wid = window.open('','CLOSE_WINDOW');
    }
    top.close();
}
// -->

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<!-- 브라우저 창닫기 스크립 여기까지 -->

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<script>
if($(window).width() < 480){
window.location = "http://m.naver.com/"
}
</script>

</head>

<body>
테이블 내용입니다.
</body>
===========================================================================================
이렇게  적용해 보았는데..
폰에서 m.naver.com으로 연결이 안됩니다..

그누보드 폴더 안에 mobile 폴더 만들어서 모바일용 테이블들과 게시판들을 별도로 연결하려했는데..
일단 다른 도메인으로도 연결이 안됩니다..

언어를 몰라서 이것저것 가져다 붙여서인지 무엇이 문제 인지를 잘 모르겠습니다 ㅠㅠ

게시판 내용들도 블로그나 카페처럼은 한가지가 다 연결은 안되겠지만
복사하면서 관리할 요령이었는데.. 그마저도..

저의 무지함에 답답함을 느낍니다ㅠㅠ

다시한번 봐주시면 감사드리겠습니다!!
저는 이제 저녁입니다. ㅎㅎㅎ (미국에 살아요.)

복잡한 일이 아니니, 설명을 드리는 것 보다, 제가 그냥 직접 자스나 php 를 짜서 넣어드리는 것이 편하실 것 같습니다.

웹호스팅마다 configuration (구조가) 다르기 때문에 그래서 작동이 안되는 걸수도 있거든요.

제 이메일로 hackya.com 앳 gmail.com 으로 FTP 정보를 알려주세요.

로그인 credential 을 주시면 원하시는데로 작동되게 해드릴께요.

님의 웹호스팅 구조파악만 되면 5분도 안걸리는 일 입니다.

대신 테스트 하나만 부탁드렸으면 합니다.  한국에 계시지 않으셔도 되고 (IP 랑 상관없으니), 한글 윈도우만 쓰고 계시면 테스트 해주실 수 있는게 있습니다. (제가 현재 작업중인 사이트)

저는 한글 윈도우를 쓰고 있지 않아서 제가 제대로 작동되는지 테스트 해볼수가 없습니다.  이것 테스트 좀 부탁드려도 될까요?
아, 2차 시도에서 jQuery 를 두번 불러오고 계시네요.  ... 그래도 그것때문에 작동이 안되지는 않을텐데....그게 문제일수도 있고, 아닐수도 있는데, 암튼 그 부분이 보입니다.
아!!미국에 계셨군요 너무 감사합니다
쪽지로 메일주소 한번 부탁드립니다.

Ftp id.pw.함께 보내드릴께요
모바일용으로 한페이지만이라도 만들어서 상세하게
의도하고자 하는 바를 적어 보내드리겠습니다!!

또한 이곳 제환경에서 테스트 해드릴수 있는것이 있다면
힘닿는것 소식 전해 드리겠습니다

참고 제 컴 사양은
윈도우7.익스플로러 9를 사용하고 있습니다^^
sir.co.kr 내에서 "이메일 보내기" 로 이메일을 보내시면 이메일이 도착하지 않습니다.  (운영자 님이 이 부분을 몇년전 부터 못 고치시더라구요.)

제 이메일은 hackya.com앳gmail.com 입니다. ("앳"을 =>@)

sir.co.kr 내에서가 아닌 본인 이메일로 보내셔야 제가 이메일을 받을 수 있습니다.

아, 그런데 저는 한글윈도우, IE8 사용자 분이 필요했는데.. ㅠㅠㅠㅠ

할수 없죠뭐.  아무튼 이메일 주시면 redirect 부분은 작성해서 작동하게 해드리겠습니다.
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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