htaccess-根据请求来源重定向

htaccess-根据请求来源重定向

请帮帮我。我想使用 .htaccess 根据请求来源进行重定向,例如:

用户请求:

http://www.domain.com/subfolder/

并应重定向至:

http://www.domain.com/

这很容易实现,但是在主页上有一个链接:

http://www.domain.com/subfolder/ 

它应该有效正当该请求来自该链接。

换句话说,我的目标是强制所有用户通过主页 其他 URL,即使他们知道页面 URL(已加书签或其他)并且它是有效的。

是否可以?

答案1

这是可能的,但不能保证 100% 的成功率。最简单的方法是使用 ${HTTP_REFERER} 标头。问题是,用户可以在浏览器中关闭此功能,并且某些机器人不会发送它。这更适合使用会话的应用程序逻辑。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www\.domain\.com/?$
RewriteCond ${REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.domain.com/ [L,R=301]

在第二行中,$ 是重要的部分。只有当 .com 或 .com/ 后面没有任何内容时,它才会匹配。第三行只是根 request_uri 的标准匹配。请注意,这两个条件都有 ! 运算符,这意味着如果 referrer 确实不是匹配http://www.domain.com/

尝试一下然后告诉我。

相关内容