JavaScript基于域名的重定向

标签 javascript redirect dns

我不是在寻找简单的重定向。

我想做的就是这个。

A 加载网站 BOB.com 并单击指向页面 X 的链接。
B 加载网站 TIM.com 并单击指向同一页面 X 的链接。

页面 X 上有一个 javascript 命令,表示如果用户来自网站 Bob.com,则重定向到 Bob.com/hello。
如果用户来自 TIM.com,则重定向到 Tim.com/hello。
如果用户不是来自以太坊,则重定向到 Frank.com/opps。

此页面 X 将处理多个域的 404 错误,因此它只需要查看“.com”以下的域名。它应该忽略“.com”之后的所有内容。

这是我开始使用的脚本。

<script type='text/javascript'>
var d = new String(window.location.host);
var p = new String(window.location.pathname);
var u = "http://" + d + p;
if ((u.indexOf("bob.com") == -1) && (u.indexOf("tim.com") == -1))
{
u = u.replace(location.host,"bob.com/hello");
window.location = u;
}
</script> 

最佳答案

使用document.referrer

if(/http:\/\/(www\.)?bob\.com/.test(document.referrer)) {
   window.location = "http://bob.com/hello";
}

else if(/http:\/\/(www\.)?tim\.com/.test(document.referrer)) {
   window.location = "http://tim.com/hello";
}

else {
   window.location = "http://frank.com/oops";
}

您可以像最初一样使用 indexOf 而不是正则表达式,但这也将匹配 thisisthewrongbob.comthisisthewrongtim.com ;正则表达式更加强大。

关于JavaScript基于域名的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4925528/

相关文章:

javascript - 无法更改时刻区域设置

javascript - 当我们使用输入 "no file chosen"时,我想更改 ="file"上的默认文本

javascript - 在 javascript 和 html 中对单引号进行操作

hyperlink - 如何从外部链接链接到模式对话框?

amazon-web-services - 不使用 route53 将 Cloudflare 指向 AWS EC2 服务器

javascript - 在 Typescript 中使用 AsyncIterator – 必需选项

redirect - undertow-handlers.conf 中的规则将 HTTP 重定向到 HTTPS

php - 重定向在 laravel 5 中不起作用

jquery - 获取详细的错误报告ajax

dns - 如何使用具有不可替代 token 标准的 RNS 域? (比如 ERC721)