请帮我在这里。 我想使用.htaccess根据请求来源redirect,例如:
用户请求:
http://www.domain.com/subfolder/
并应该redirect到:
http://www.domain.com/
这是非常简单的完成,但在网页上有一个链接:
http://www.domain.com/subfolder/
当请求来自该链接时,它应该工作。
换句话说,我的目标是强制所有用户通过其他url之前的主页,即使他们知道的网页url(书签或其他),这是一个有效的。
可能吗?
这是可能的,但不能保证100%的成功率。 最简单的方法是使用$ {HTTP_REFERER}头。 问题是,用户可以在浏览器中closures此function,有些机器人不会发送它。 这更适合使用会话的应用程序逻辑。
RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://www\.domain\.com/?$ RewriteCond ${REQUEST_URI} !^/$ RewriteRule ^(.*)$ http://www.domain.com/ [L,R=301]
在第二行中,$是重要部分。 它只会匹配.com或.com之后没有任何内容。第三行只是根request_uri的标准匹配。 请注意这两个条件都有! 运营商,这意味着如果引荐者不匹配http://www.domain.com/
试试这个,让我知道。