2013-08-07 6 views
0

여기 설명하기에 너무 긴 이유 때문에 userAgent를 사용하는 특정 장치 인 경우 자바 스크립트를 사용하여 내 인덱스 페이지에서 내 모바일 하위 도메인으로 방문자를 리디렉션하고 싶습니다.리퍼러가 내 도메인이 아닌 경우 자바 스크립트 리디렉션

모바일 사이트에 색인 페이지로 연결되는 "전체 사이트보기"링크가 있습니다. 이것은 루프 조건을 생성합니다.

여기 내가 달성하려고하는 것입니다.


경우 참조 URL이 내 자신의 도메인 및 사용자 에이전트가 일치 아니라, 다음 모바일 하위 도메인으로 리디렉션합니다.


나는 가깝지만 뭔가가 빠져있다.

if (document.referrer != "mydomain.com" && 
      (navigator.userAgent.match(/iPhone/i)) || 
      (navigator.userAgent.match(/iPod/i)) || 
      (navigator.userAgent.match(/iPad/i)) || 
      (navigator.userAgent.match(/Googlebot-Mobile/i))); { 
     location.replace("https://m.mydomain.com"); 
     } 
+0

당신은 – mplungjan

답변

1

상태가 약간 재미 있고 세미콜론이 있어야합니다.

리퍼러 조건은 다른 조건과 ored 되었기 때문에 무시됩니다. 모든 OR을 괄호 안에 넣으면 제대로 작동합니다. 그것은 개봉을 알고 당신이 두 번째 사용자 (및 장치 인식) 100 %를 추측 할 수 없다 보여주고 있기 때문에 링크를 갖는

if (document.referrer != "mydomain.com" && 
      ((navigator.userAgent.match(/iPhone/i)) || 
      (navigator.userAgent.match(/iPod/i)) || 
      (navigator.userAgent.match(/iPad/i)) || 
      (navigator.userAgent.match(/Googlebot-Mobile/i)))) { 
     location.replace("https://m.mydomain.com"); 
     } 

좋은 생각이다.

mplungjan은 리퍼러에 의존하기가 그리 강력하지 않다고 말합니다. 전체 사이트에서 볼 사용자의 의도를 등록하는 '세션'정보를 저장하는 것이 좋습니다. 이렇게하면 스위치를 무시할 수 있습니다.

대부분의 모바일 브라우저는이 추적하는 데 사용할 수있는 sessionStorage를 지원 (예 : sessionStorage['site'] = 'full') 내가 iOS 및 개인 모드 (전용 모드에서 나던 저장 아무것도) 문제를 했어하지만.

+0

** 재미있는 ... ** 내가 쿠키를 허용 및 민간에없는 모바일 장치에 의존하지 않아도되는 리퍼러 경로를가는 이유 (처럼 내를 유지 참조 자에 의존 할 수 없다 iPhone) 제안, 논쟁 및 아이디어에 대해 열려 있습니다. 나는 리퍼러를 구입한다고해서 쉽게 이해할 수 있다고 생각했습니다. 리퍼러를 얻지 못한다면 ... 그것은 여전히 ​​userArgent를 전달해야합니다. "견고한"이란 무엇을 의미합니까? –