在Apache中的重定向上设置referrer / header

时间:2011-03-15 05:09:30

标签: ruby-on-rails apache

我有一个网站有一个短网址域,A记录指向主网站(改变这个很难,所以我宁愿不这样做)。我有一些特殊的逻辑,需要在从短URL访问应用程序时运行。

现在,当我点击短网址时,我让Apache设置了一个RewriteRule来对主站点做301,但是如果我尝试访问引用者或任何类型的头文件,他们似乎就不见了。我可以通过附加一个查询参数来解决这个问题,但我也不想弄乱URL。关于如何在Apache中设置我可以在我的Rails应用程序中访问的某些数据的任何想法,以告知该请求是否是访问短URL的结果?

2 个答案:

答案 0 :(得分:0)

由于引荐来源完全是客户端,因此您只有两个选项(查询字符串除外):

  1. 允许Rails为您而不是Apache处理重定向,并将一些信息存储在用户的会话中。

  2. 使用cookie RewriteRule选项。 RewriteRule有一个cookie / CO选项,允许您将Set-Cookie连同重定向响应一起发送到浏览器。选项的格式为:cookie|CO=NAME:VAL:domain[:lifetime[:path]]。有关详细信息,请参阅RewriteRule documentation

答案 1 :(得分:0)

出于严格的性能原因,我会坚持使用Apache进行重定向,因此不需要进入Rack(也就是花费更多时间)。因此,我会在RewriteRule上设置一个cookie,并在检测到重定向后销毁cookie。