이 프로젝트에서는 사무실 자체적으로 서버PC를 설치하여 고정IP를 잡았습니다. 따라서 도메인의 네임서버 변경 서비스를 쓸 수 없는 상황이었지요.


그렇다면 포워딩을 해야 하는데, 아시다시피 포워딩에는 두가지 방법이 있습니다.


고정도메인 방식과 유동도메인 방식.


그런데 고정도메인 방식으로 포워딩하면 자체적으로 frameset 태그가 들어가서 모바일에서 제대로 보이지 않는 문제가 있었고, 유동도메인 방식으로 포워딩하면 IP주소가 주소창에서 바로 보여서 실장님이 마케팅적인 면에서 문제가 있다면서 클레임을 걸었던 상황이었습니다.


그래서 모바일에서 페이지가 제대로 보이면서도 도메인은 고정도메인으로 보여져야 하는 상황이었습니다.


이 방법에 대한 대안으로 팀장님은 아래 링크를 보여주었지만, 아래 링크 방법은 직접 해본 결과 효과가 없습니다. 왜냐하면 이 방법은 고정도메인을 죄다 유동도메인으로 바꾸는 방법이지, 유동도메인 같은 페이지 효과를 내면서 주소창에 고정도메인으로 나타내는 방법이 아니기 때문입니다.


http://opencode.co.kr/bbs/board.php?bo_table=php_tips&wr_id=27


이 문제 때문에 고민을 좀 했는데, 어차피 사람들은 모바일에서는 PC보다 도메인을 잘 안보는 경향이 있습니다.


그래서 모바일에서만 유동도메인 효과를 내고, PC에서는 아예 고정도메인으로 frameset를 활용한 페이지를 보여주는건 어떨까? 라는 생각을 해 봤습니다.






일단 그 방법을 쓰기 위해서는 도메인이 필요하고, 고정도메인으로 포워딩 시켜야 합니다.


그리고 포워딩되는 주소에 다음과 같은 제이쿼리 소스를 삽입해 줍니다. (주의 : jQuery 소스코드이므로 jQuery 라이브러리가 필요합니다.)


jQuery(document).ready(function($) {

var isTouchDevice = 'ontouchstart' in window || navigator.msMaxTouchPoints;


if (isTouchDevice) {

window.open("이동시킬 주소 URL", "_top");

}

else{

window.location.href = "이동시킬 주소 URL";

}

});


이 코드는 엄밀히 말하면 터치가 되는 디바이스를 인식하여 분기시키는 소스코드입니다. 대부분의 경우 터치가 되는 기기가 모바일이긴 하지만, 100% 일치하지는 않으므로(최근에는 터치가 되는 PC가 출시되고 있지요) 완벽하지 않습니다.


여기서 _top 은 html 코드의 <a target="_top"> 과 같습니다. 링크를 시킬 때 target="_top" 을 추가하게 되면 프레임셋으로 들어왔던 홈페이지가 초기화되어 유동도메인과 같은 효과를 낼 수 있게 됩니다.


사실 처음에는 PHP를 사용한 방법, 자바스크립트 플러그인을 사용한 방법을 생각했었는데, 이들 방법의 경우 주소 이동은 가능했지만, 실제 사용해본 결과 target을 정해줄 수가 없어서 고정도메인 -> 유동도메인으로 바꿀 수가 없었습니다.




이 방법으로 일단 급한 문제는 해결했지만, 사실 이 방법보다 더 좋은 근본적인 방법이 필요합니다. 모든 상황에서 페이지가 제대로 보이면서 주소창에 고정도메인으로 보여지는 게 최선입니다.


어떤 방법이 있을까요?





저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

  1. 엘포 2015.12.15 10:31 신고  댓글주소  수정/삭제  댓글쓰기

    고정IP이면 네임서버는 dnsever 같은 서비스를 사용하고 A레코드 값을 변경해서 사용하면 되지 않나요??

    • 책덕후 화영 2015.12.15 12:03 신고  댓글주소  수정/삭제

      오늘 업무하면서 제보해주신 방법을 써 봤는데요, 내부에서 링크를 눌러서 이동하면 주소고정이 안되요... ㅠㅠㅠㅠㅠㅠ

    • 엘포 2015.12.15 14:53 신고  댓글주소  수정/삭제

      아.. 도메인이 www.examples.com 라고 하면
      다른 페이지 이동을 한다고 해도 www.examples.com/page1 말고 그대로 원 도메인만 출력되게 하는걸 원하시는 건가요??

    • 책덕후 화영 2015.12.15 15:10 신고  댓글주소  수정/삭제

      그렇게까지는 안해도되는데 고정IP주소가 바로 출력되면 안되고 ionestudio.com으로만 출력되어야 해요... a레코드는 써보니까 페이지를 이동했을때 고정IP주소가 바로 노출되더라구요 ㅠㅠ

    • 엘포 2015.12.15 16:34 신고  댓글주소  수정/삭제

      사이트가 Xpressengine 으로 돌아가고 있는거 같은데요
      일단 사용하려는 도메인은 A레코드값에 서버ip 주소로 설정해주세요 (포워딩은 해제)

      그러고나서 지금 ip로 접속되는 사이트 admin 페이지에 접속하셔서 설정 - 일반 들어가셔서 고급 누르시면 기본 URL 이라는 폼이 보이실텐데 그 부분을 사용하려는 도메인으로 변경해주세요. (FTP 접속 가능하시면 /files/config/db.config.php 에서 수정하셔도 됩니다)
      설정값 저장하신후에 하단(잘 기억이 안나네요 안쓴지 오래되서; 아마 하단이 맞을거에요)의 캐시파일 재생성을 해주세요.
      다음부터는 메뉴나 다른 페이지로 이동해도 ip로 이동 안되고 도메인으로만 접속될거에요.

      xe가 원래 설정에서 기본 url으로 설정된 값과 다른 주소에서 접속하면 기본 주소로 리다이렉트 시키는 특성이 있어요.

    • 엘포 2015.12.15 16:39 신고  댓글주소  수정/삭제

      아, 그리고 메뉴도 수동으로 추가해주셨다면 메뉴 url도 변경해주셔야 해요.
      XE 어드민 페이지에서 수정할수 있어요

    • 책덕후 화영 2015.12.15 16:41 신고  댓글주소  수정/삭제

      감사합니다. 지금은 다른일 있어서 손대기 어려울거같고 내일 해봐야겠네요 ^^;

    • 책덕후 화영 2015.12.16 10:39 신고  댓글주소  수정/삭제

      오... 정말 알려주신대로 하니까 해결됐어요! 감사합니다!

    • 엘포 2015.12.16 15:58 신고  댓글주소  수정/삭제

      옛날에 XE 쓸때 저런식의 문제를 경험해본적이 있거든요~ 사이트 주소 알려주신걸로 확인해보니 바로 문제를 캐치했어요

    • 아킬레우스 2017.10.25 03:16 신고  댓글주소  수정/삭제

      <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=yes">

      프레임셋이 있는 곳에 위 메타태그를 달아보세요...

    • 책덕후 화영 2017.10.25 15:34 신고  댓글주소  수정/삭제

      지금은 문제 해결한지 좀 됐습니다~ 꽤 오래전 포스팅이라... 감사합니다~

  2. 영준이 2015.12.15 20:17 신고  댓글주소  수정/삭제  댓글쓰기

    이용하는 DNS서비스에서 레코드값만 추가하면되요... dns 서비스 추천드리자면 aws route53, cloudflare 추천드립니다. 초보자도 쉽게 알수있게끔 설명이 잘되있습니다. 레코드 종류도 많은데 제 블로그 포스팅 함 참고하세요. http://blog.hax0r.info/

  3. 영준이 2015.12.15 21:43 신고  댓글주소  수정/삭제  댓글쓰기

    안되실리가; 서비스사에 따라 지연시간 발생합니다 참고하세요

티스토리 툴바