如何使用htaccess将HTTP_REFERER附加到查询字符串?

时间:2009-07-15 15:48:59

标签: .htaccess mod-rewrite http-referer

在我的.htaccess文件中,我有一套规则如下:

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]

有时,可以通过来自其他网站(referer)的重定向来访问其中一条规则。我希望能够将引用者附加到查询字符串,如下所示:

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

然而,这似乎不起作用。

我做错了什么?

3 个答案:

答案 0 :(得分:3)

如果你正在拼写HTTP_REFERER(由于编辑而不清楚),你正确地做到了。如果它在那时没有工作,那是因为没有提供引用者。 (这有多种原因;由浏览者自行决定提供。)

答案 1 :(得分:1)

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

据我所知,重写的URL不会删除原始Referer标题,因此您仍然可以从代码中获取它而不将其作为查询字符串参数传递(前提是它提供)您可以访问HTTP变量。)

答案 2 :(得分:0)

一种适用于我的测试方法,并通过301重定向传输refferer。 https://webmasters.stackexchange.com/questions/4665/