在我的.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]
然而,这似乎不起作用。
我做错了什么?
答案 0 :(得分:3)
如果你正在拼写HTTP_REFERER(由于编辑而不清楚),你正确地做到了。如果它在那时没有工作,那是因为没有提供引用者。 (这有多种原因;由浏览者自行决定提供。)
答案 1 :(得分:1)
引荐来源的变量使用常见的拼写错误:HTTP_REFERER
。有关更多变量名称,请参阅this cheat-sheet。
据我所知,重写的URL不会删除原始Referer
标题,因此您仍然可以从代码中获取它而不将其作为查询字符串参数传递(前提是它提供)您可以访问HTTP变量。)
答案 2 :(得分:0)
一种适用于我的测试方法,并通过301重定向传输refferer。 https://webmasters.stackexchange.com/questions/4665/