.htaccess 如何使用htaccess将HTTP\u REFERER附加到查询字符串?

.htaccess 如何使用htaccess将HTTP\u REFERER附加到查询字符串?,.htaccess,mod-rewrite,http-referer,.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)访问。我希望能够将referer附加到查询字符串中,如下所示: Rewrite

在.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)访问。我希望能够将referer附加到查询字符串中,如下所示:

RewriteRule ^dir/page2$ /bleh/docs/?id=13&ref=%{HTTP_REFERER} [L,QSA]
然而,这似乎不起作用


我做错了什么?

引用者的变量使用了常见的拼写错误:
HTTP\u REFERER
。有关更多变量名,请参阅


据我所知,重写的URL不会删除原始的
Referer
头,因此您应该仍然能够从代码中获取它,而无需将其作为查询字符串参数传递(前提是它允许您访问HTTP变量)。

Referer的变量使用常见的拼写错误:
HTTP\u Referer
。有关更多变量名,请参阅


据我所知,重写的URL不会删除原始的
Referer
头,因此您应该仍然能够从代码中获取它,而无需将其作为查询字符串参数传递(前提是它允许您访问HTTP变量)。

如果您拼写它为HTTP\u Referer(由于编辑,这一点不清楚),你做得对。如果它在那一点上不起作用,那是因为没有提供referer。(有很多原因;由浏览器自行决定是否提供。)

如果您将其拼写为HTTP\u REFERER(由于编辑原因不清楚),那么您的拼写是正确的。如果它在那一点上不起作用,那是因为没有提供referer。(有很多原因;由浏览器自行决定是否提供。)

一种经过测试的方法,适用于我并通过301重定向传输引用者。

一种经过测试的方法,适用于我并通过301重定向传输引用者。