基于域名的Javascript引荐来源检查

时间:2012-11-22 23:55:05

标签: javascript referrer

我需要在页面上使用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;
}

但是效果不好。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可能根本不需要正则表达式。你知道你的域名的字符长度,例如url http://example.com计算字符数,然后根据引用的url域长度拆分字符串,然后用你的域名网址进行cmop!那就是全部。

答案 1 :(得分:1)

在您的情况下,match是匹配字符串的数组。所以永远不会平等。您需要比较match[0]

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

或者你可以通过这样做来避免正则表达式:

if (document.referrer.substr (0, domain.length).toLowerCase()!== domain) ...