根据原始URL重定向用户

时间:2014-11-24 17:02:40

标签: jquery redirect http-redirect

我需要根据网址的原始网址将流量重定向到网址。

·siteabc.co.uk域名将重定向到sitexyz.co.uk/camps

·siteabc.co.uk/daycamps也将存在

我想要发生的是,如果客户输入siteabc.co.uk,他们将被重定向到sitexyz.co.uk/camps,其中弹出/灯箱会出现说'你在寻找Daycamps吗? '如果点击,用户将被带到siteabc.co.uk/daycamps

如果他们直接登陆sitexyz.co.uk/camps,则不应显示弹出窗口。

我需要只有在他们从siteabc.co.uk到达时才会显示灯箱,这可能吗?

我认为jQuery应该可以做到,但我不确定是否有一个起点可以使用。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:0)

如果您只想通过JavaScript执行此操作,请使用document.referrer获取Referer URL。它将从您重定向到该页面的位置为您提供。但依靠Server Side Scripting总是更好。

答案 1 :(得分:0)

这更像服务器端,因为您可以轻松查看引用URL,您最好的选择是使用您正在使用的代码来根据其来源添加类,如果您显示代码我可以帮助更多,但在此之前添加一个基于服务器请求的类,NodeJS在这方面很出色但同样如此PHP。在大多数情况下,它也更准确。

答案 2 :(得分:0)

您可以使用URL参数来决定要显示的内容。请考虑以下简单示例。

redirect1.html

<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
    window.location.assign('redirect2.html?redirect1');
};
</script>
</head>
<body>
</body>
</html>

redirect2.html(同一个目录)

<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
    var paramString = window.location.href.split('?')[1];
    if (paramString !== undefined) {
        console.log(paramString);
    }
};
</script>
</head>
<body>
</body>
</html>

第一个文件中的JS将页面重定向到第二个文件(您也可以使用URL提供location.assign函数)。 第二个文件中的JS解析自己的URL并在&#39;?&#39;之后打印该部分。到您的浏览器控制台。相反,你可以决定做什么,取决于&#39;?&#39;之后的内容。 (域名,例如)。

P.S。 This reference可能很方便。

答案 3 :(得分:0)

如果您正在使用任何Apache Web服务器,那么您的问题的解决方案是使用.htaccess文件。 htaccess文件(分布式配置文件)提供了一种基于每个目录进行配置更改的方法。

首先创建一个名为.htaccess的文件,并将其保存在根目录中。在您的情况下,在siteabc.co.uk/.htaccess

由于不同版本的Apache服务器配置文件语法可能会发生变化,因此以下是应该运行的代码

类型:1

RewriteEngine On RewriteBase /
RewriteCond%{HTTP_HOST}!siteabc.co.uk/$ [NC]
RewriteRule ^(。*)$ siteabc.co.uk/camps/$1 [L,R = 301]

类型:2

重写发动机 RewriteCond%{REQUEST_URI} ^ / $
RewriteRule(。*)siteabc.co.uk/camps [R = 301,L]


类型:3

RewriteEngine On RewriteRule ^ $ / camps [L]



感谢