【问题标题】:Redirect user based on originating URL根据原始 URL 重定向用户
【发布时间】:2014-11-24 17:02:40
【问题描述】:

我需要根据原始 URL 将流量重定向到 URL。

· 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 应该能够做到,但我不确定是否有一个起点可以使用。任何帮助表示赞赏。

【问题讨论】:

    标签: jquery redirect http-redirect


    【解决方案1】:

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

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

    由于不同版本的 Apache 服务器配置文件语法可能会改变,这里是应该工作的代码

    类型:1

    重写引擎开启
    RewriteBase /
    RewriteCond %{HTTP_HOST} !siteabc.co.uk/$ [NC]
    RewriteRule ^(.*)$ siteabc.co.uk/camps/$1 [L,R=301]

    类型:2

    RewriteEngine 上
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule (.*) siteabc.co.uk/camps [R=301,L]


    类型:3

    重写引擎开启
    重写规则 ^$ /camps [L]



    谢谢

    【讨论】:

    • 工作得很好!谢谢
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您只想通过 JavaScript 执行此操作,请使用 document.referrer 获取引用 URL。它会给您从您重定向到该页面的位置。但依赖服务器端脚本总是更好。

      【讨论】:

        【解决方案4】:

        您可以使用 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 并打印“?”之后的部分到您的浏览器控制台。相反,您可以根据“?”之后的内容来决定要做什么。 (例如域名)。

        附: This reference 可能很方便。

        【讨论】:

          猜你喜欢
          • 2011-04-10
          • 1970-01-01
          • 2011-01-18
          • 1970-01-01
          • 2019-03-23
          • 1970-01-01
          • 2017-06-01
          • 1970-01-01
          • 2021-04-19
          相关资源
          最近更新 更多