【问题标题】:How to add link parameters to the links that get redirected from a certain site (bit.ly)?如何将链接参数添加到从某个站点 (bit.ly) 重定向的链接?
【发布时间】:2016-07-27 05:41:26
【问题描述】:

我通过在 bit.ly 上创建的指向我的网站的短链接接收访问者。

例如,当有人去bit.ly/wtrguide 他们来waytorussia.net

我想要的是,在这样的示例中,我自己网站上的脚本会在访问者通过 @987654325 访问时自动将一些参数(例如 ?referer=bitly&source=book)添加到 waytorussia.net URL @链接。

是否可以做这样的事情——根据来源自动添加 URL 参数?

我可以通过.htaccess 进行操作吗?如何操作?还是有其他方法可以做到这一点?

谢谢!

PS 该网站在 Drupal 上运行,如果这很重要的话。

【问题讨论】:

  • 您真的应该在位链接本身中添加这些参数。使用 .htaccess 执行此操作会导致第二次重定向,这会减慢速度,并且可能对 SEO 不利。我建议只用 bitly 来做。

标签: .htaccess url drupal url-rewriting url-routing


【解决方案1】:

我赞同你之前收到的评论:

您确实应该在 bitly 链接本身中添加这些参数。使用 .htaccess 执行此操作会导致第二次重定向,这会减慢速度,并且可能对 SEO 不利。我建议只用bitly来做。 – Mike Rockett 4 月 7 日 4:47

但是,如果您仍然想这样做,您可以使用mod_rewrite 和一些PCRE regular expressions 这样做:

RewriteEngine   On
RewriteCond %{HTTP_REFERER} ^http://catalogue.example.com/
RewriteCond %{THE_REQUEST}  !referer=catalogue
RewriteRule ^(.*)$  $1?referer=catalogue    [R]

然而,上面的问题是 HTTP/1.1 规范(旧版本以及同一协议的更新 RFC)似乎没有定义一个危险的场景。

如果目标 URI 是从没有其 自己的 URI(例如,来自用户键盘的输入,或 用户的书签/收藏夹),用户代理必须排除 Referer 字段或使用“about:blank”值发送。

不幸的是,当Referer 字段为空时,没有提到任何关于遵循HTTP 30x 重定向的内容——没有建议在这种情况下将Referer 设置为先前的URL 位置。

通常对于 HTTP 重定向,Referer HTTP 标头字段的值不会在通过 301/302/30x HTTP 重定向接收到新的 Location 标头时发生变化,因此很遗憾,上面的代码不会为 bit.ly 工作,除了在 bit.ly 服务本身中创建特殊链接之外,基本上没有办法检测到用户来自这样的链接。

【讨论】:

猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 2016-04-28
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多