【问题标题】:How to collect client data when we redirect using 301 redirect?当我们使用 301 重定向重定向时如何收集客户端数据?
【发布时间】:2015-10-12 03:29:06
【问题描述】:

有一个类似Clickmeter 的系统允许人们为他们的横幅广告创建一个智能链接。这是系统的简短说明。您可以输入一个 URL 作为登录页面,系统会为您返回一个特殊的 URL,而不是原始 URL。现在,如果有人点击特殊链接,他将被重定向到您想要的登录页面。

我正在开发类似的东西,但问题就在这里。由于某些 SEO 的原因,我必须使用 301 重定向,而据我所知,301 重定向仅在服务器端可用。但我想在重定向客户端之前获取一些客户端数据,例如浏览器名称、操作系统型号和浏览器语言。我在 javascript 中做这部分,绝对是客户端。

我不知道该怎么做,或者我是否对其他事情有误。但我知道Clickmeter 正在做我想做的事情。他们获取一些客户端数据,然后进行 301 重定向。以下是 Clickmeter 的示例链接:http://9nl.it/vz0d

【问题讨论】:

  • 请添加代码,而不是链接(没有人应该从问题中转到链接来理解它)。即使您必须添加链接,也请不要添加已被 URL 缩短器遮盖且人们无法分辨另一边的内容的链接。
  • 感谢您的评论@AlvaroMontoro。我在问题中提供的链接适用于想要了解更多有关该问题的人。问题很简单。我正在寻找 301 重定向和同时获取客户端数据。再次感谢您的关注

标签: javascript c# asp.net redirect


【解决方案1】:

您不会在客户端获取客户端的数据。在执行 301 重定向之前,您可以在服务器端读取并处理 Request.UserAgent

// get the User Agent
string userAgentText = HttpContext.Current.Request.UserAgent;

// Process the User Agent, and extract the information you want: browser, OS, version...
...

// Make the 301 redirection to the target URL programmatically
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", TARGET_URL);

您可以通过使用window.navigator.userAgent(和 AJAX 在点击时发送数据)在 JavaScript 中获得类似的信息,但我不推荐此解决方案,原因有两个:

  • 如果您只提供一个 URL(您的服务听起来像一个 URL 缩短器),则不能注入 JavaScript 代码。
  • 如果用户禁用了 JavaScript,此解决方案将根本不起作用。

要了解有关如何做到这一点的更多信息,请阅读以下问题:

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2011-02-04
    • 2015-03-20
    • 2011-06-13
    相关资源
    最近更新 更多