2009-07-15 139 views
0

在我的.htaccess文件我有一套规则如下:如何使用htaccess将HTTP_REFERER追加到查询字符串?

RewriteRule ^dir/page1$ /bleh/docs/?id=12 [L,QSA] 
RewriteRule ^dir/page2$ /bleh/docs/?id=13 [L,QSA] 
RewriteRule ^dir/page3$ /bleh/docs/?id=14 [L,QSA] 

有时这些规则之一可以通过从其他网站(引荐)重定向访问。我想能够像这样追加引用到查询字符串:

RewriteRule ^dir/page2$ /bleh/docs/?id=13&ref=%{HTTP_REFERER} [L,QSA] 

但是,这似乎并不奏效。

我在做什么错?

回答

2

如果您正在拼写HTTP_REFERER(由于编辑原因而不清楚),则您正确地执行了此操作。如果它在那个时候不工作,那是因为这个引用者没有被提供。 (其中有许多原因;提供它是在浏览器的自由裁量权。)

1

引用者的变量使用常见的拼写错误:HTTP_REFERER。有关更多变量名称,请参见this cheat-sheet

据我所知,重写的URL不会删除原始的Referer头,所以你应该仍然能够从你的代码中获取它,而不用把它作为查询字符串参数传递(假如它允许你访问HTTP变量。)

相关问题