我已经在谷歌搜索了一段时间,但却未能找到解决方案。
我需要将我网站的用户重定向到欢迎页面,前提是他们之前没有访问过该网站。
如果这是假的,我将存储一个hasVisited cookie并重定向,并将其设置在欢迎页面上。
我可以在PHP和jQuery中使用它,但是当它检查是否设置了cookie时,它首先加载默认页面内容然后重定向。看起来也不行。
我所追求的是: a - 使用htaccess会在重定向之前先停止默认页面加载 b - 如何做到以上
任何帮助表示感谢。
答案 0 :(得分:2)
你需要用PHP进行cookie检查,然后调用header(“Location:http://your-url.com/”)来重定向它们
即
if (!isset($_COOKIE['hasVisited']) {
header("Location: http://example.com/welcome.php");
}
请注意,这将影响搜索引擎优化 - 谷歌只能查看您放入此文件的每个php文件的欢迎页面。您可以添加此文件以允许谷歌通过支票
if (!isset($_COOKIE['hasVisited'] && !strpos($_SERVER[‘HTTP_USER_AGENT’],"Googlebot"))
答案 1 :(得分:2)
您不需要使用PHP。您只需使用重写规则即可。如何维护以前的上下文取决于您是否对参数使用SEO优化编码或传统参数编码。所以
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !\bhasVisited= [NC]
RewriteRule (?:!welcome\.php\b)(?=\.php\b)(.*) welcome.php?page=$1 [QSA,L]
规则的第一点是防止它发射两次。第二个限制为php脚本(您不希望welcome.php使用的CSS也被重定向)。您还需要存储初始URI,以防访问者想要继续他或她的初始请求。
这种方法比替代PHP检查更简单 - 当然需要将其添加到每个脚本中。