如果访问者来自domain1.com domain2.com或domain3.com,我不想显示某些内容
<script>
var refers = document.referrer;
if(refers!="domain1.com") {
// bye bye content will not be displayed if domain1.com is the refer
} else if (refers!="domain2.com"){
// bye bye content will not be displayed if domain2.com is the refer
} else if (refers!="domain3.com") {
// bye bye content will not be displayed if domain3.com is the refer
}
else {
// All other domains referrers are allowed to see the content
}
</script>
此代码不起作用,另一个问题是document.referrer不抓取子域或www。必须与请求的domain1.com完全一样,如果它包含www将无法被检测到。
我是新手...请不要建议任何htaccess重写规则
由于
答案 0 :(得分:0)
在我提出问题之前,我必须说明一下:
使用document.referrer
是解决此问题的非常糟糕的选择。技能最小的任何人都可以点击view source
按钮查看所有内容。这只是最基本的用户。
document.referrer
非常不可靠,即使用户从您网站上的其他网页访问,也有很多原因可以解决这个问题。
出于学习目的,这没关系,但这在任何实际应用程序或程序中都是不可接受的做法!
那说......
function isReferrerGood() {
function strEndsWith(str, suffix) {
var reguex = new RegExp(suffix + '$');
if (str.match(reguex) != null)
return true;
return false;
}
var i;
var domain;
var goodDomains = [
"example.com",
"example2.com"
];
var ref = document.referrer;
// For testing purposes, we'll set our own value
// Note that this is a sub-domain of one of our good domains.
ref = "abc.example.com";
// Loop through the domains
for (i = 0; i < goodDomains.length; i++) {
domain = goodDomains[i];
if (strEndsWith(ref, domain)) {
return true;
}
}
return false;
}
alert(isReferrerGood());