我的Apache配置文件中有以下RewriteEngine on
RewriteCond %{HTTP_COOKIE} ^returnvisitor$ [NC]
RewriteRule .? - [S=3]
RewriteRule /index.html /new_visitor.html
RewriteRule .* - [CO=returnvisitor:yes:.127.0.0.1:1440:/:true:true]
RewriteRule .? - [S=1]
RewriteRule /index.html /returning_visitor.html
代码,但我无法识别cookie何时出现。我在这里看了很多答案,但似乎无法找到解决我遇到的任何问题的答案。
RewriteEngine on
RewriteCond %{HTTP_COOKIE} returnvisitor=yes [NC]
RewriteRule .? - [S=3]
RewriteRule /index.html /new_visitor.html [R]
RewriteRule .* - [CO=returnvisitor:yes:.127.0.0.1:1440:/:true:true]
RewriteRule .? - [S=1]
RewriteRule /index.html /returning_visitor.html [R,L]
更新1:
我已经修改了以下代码并取得了一些进展,但仍然没有按预期行事。
index.html
原始代码会重定向主页(即默认页面为index.html
)但是,现在我必须在网址中手动请求index.html
才能触发重定向,但至少这次是我returning_visitor.html
的第二个请求已重定向到example.com
。
首次访问new_visitor.html
时,我需要通过returning_visitor.html
访问hompage时发生重定向,并将后续访问重定向到example.com/index.html
。无需手动输入find
。
答案 0 :(得分:1)
您可以使用:
RewriteEngine on
#First visit
# if the cookie is not set
RewriteCond %{HTTP_COOKIE} !returnvisitor=yes$ [NC]
# serve "/new_visitor.html"
RewriteRule /index.html /new_visitor.html [R,L]
#second visit
#set the cookie "returnvisitor" on any uri
RewriteRule .* - [CO=returnvisitor:yes:.127.0.0.1:1440:/:true:true]
#check to see that the cookie is set
RewriteCond %{HTTP_COOKIE} returnvisitor=yes$ [NC]
#if so, redirect the index.html to "/returning_visitor.html"
RewriteRule /index.html /returning_visitor.html [R,L]
让我知道它对你有用。