2012-11-22 4 views
4

리퍼러 (이전 페이지)가 동일한 도메인에서 온 것인지 확인하기 위해 페이지에 JS가 필요합니다.도메인을 기반으로하는 자바 스크립트 리퍼러 확인

JS있는 페이지의 URL은 다음과 같이 포맷 :

http://subdomain.site.com/dir/page?vs=123456

여러 이전 페이지가있을 수 있습니다. 따라서 JS는 도메인이 일치하는지 확인해야합니다.

도메인이 다른 경우 사용자를 다른 페이지로 보내려고합니다.

var matchHost = /^https?:\/\/.*\//; 
var match = matchHost.exec(document.referrer); 
var domain = "http://subdomain.site.com/dir/"; 

if (match !== domain) { 
window.location.href = domain; 
} 

그러나 잘 작동을하지 않습니다

이 내가 작업을 얻기 위해 노력하는 것이다.

아이디어가 있으십니까?

+1

는 리퍼러를 신뢰하지 마십시오. 쉽게 스푸핑 될 수 있으며 종종 억제됩니다. – Bergi

답변

1

정규식이 필요하지 않을 수도 있습니다. 당신은 당신의 도메인의 문자 길이를 알고 있습니다. 예를 들어, http://example.com 문자를 카운트 한 다음 추천의 URL 도메인 길이에 따라 문자열을 분할 한 다음 도메인 URL과 함께 입력하십시오. 그게 다야.

+1

의미가 있습니다. 감사! – Lawrence

+0

환영합니다. – SaidbakR

1

귀하의 경우 match은 일치하는 문자열의 배열입니다. 그래서 결코 평등하지 않을 것입니다.

if (match.length== 0 || match[0]!== domain) ... 

또는 당신은이 작업을 수행하여 모든 정규식을 방지 할 수 있습니다 : 당신은 match[0]을 비교해야

if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ... 
관련 문제