使用301重定向重定向时如何收集客户端数据?

时间:2015-07-22 10:05:27

标签: javascript c# asp.net redirect

Clickmeter这样的系统允许用户为其横幅广告创建智能链接。以下是该系统的简短说明。您可以输入一个URL作为登录页面,系统会为您提供一个特殊的URL来代替原始URL。现在,如果有人点击特殊链接,他将被重定向到您想要的登录页面。

我正在开发类似的东西,但这是麻烦。我必须使用301重定向,因为一些SEO的东西,301重定向只在服务器端可用,据我所知。但是我希望在重定向客户端之前获取一些客户端数据,例如浏览器名称,操作系统模型和浏览器语言。我在javascript中做这个部分,绝对是客户端。

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

1 个答案:

答案 0 :(得分:0)

您无法在客户端获取客户的数据。您可以在执行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,则此解决方案根本不起作用。

要了解有关如何完成此操作的更多信息,请阅读以下问题: