我在Apache服务器上设置了一些重定向。他们看起来像这样:
重定向/名称/注册/login.html
我的问题是这个...无论如何都要通过此重定向保留HTTP Referrer?似乎默认情况下,Apache会丢弃这些信息。如果重定向完成后推荐人说:
,我真的很喜欢http://the.orginalurl.com/Name/register
任何人,如果这是可能的?如果没有,请考虑替代方案。
非常感谢, 尼尔
答案 0 :(得分:6)
Redirect
将不会保留引荐来源,因为浏览器会被发送301和新地址以便打开。来自manual:
Redirect指令通过要求客户端在新位置重新获取资源,将旧URL映射为新URL。
mod_rewrite和(我认为)Alias可以直接重写(即不会导致浏览器重定向)并保留引荐来源。使用mod_rewrite,如果需要,您甚至可以将referer作为GET参数添加到您的请求中。
答案 1 :(得分:1)
这是一个浏览器问题,而不是apache。你无能为力。这样做是为了防止某些安全问题和引用垃圾邮件。
答案 2 :(得分:1)
您始终可以在请求开始时将原始引荐来源存储在管道变量中,而只需将其从那里拉出来。
答案 3 :(得分:1)
我创建了一种通过301重定向传输refferer的替代方法。 https://webmasters.stackexchange.com/questions/4665/
答案 4 :(得分:0)
我相信一切都取决于你如何写规则。 它可以根据您提供的标记充当“重定向”或“重写”。
302将被发送到浏览器,它将发起另一个请求(请参阅Firebug并启用“persist”选项):
RewriteCond %{REQUEST_URI} !/index.html
RewriteRule ^(.*)$ /index.html [R=302,L]
浏览器不会启动302重定向,因为我们不发送此类标头,但它会掩盖内容:
RewriteCond %{REQUEST_URI} !/index.html
RewriteRule ^(.*)$ /index.html [L]
在此选项中,如果有人访问“page.html”,他会看到“index.html”的内容不是“page.html”,但上面的网址仍会显示“page.html”
适用于维护页面等......不确定登录页面......但这是另一种思考方式。
在我的特定情况下,“RewriteRule”与“Alias”之间的主要区别在于,重写可以在.htaccess中设置,而“别名”不是......所以并不总是可以使用Alias ... < / p>