如何基于cookie设置根目录



我正试图使用我的htaccess文件基于通过网站设置的cookie来设置我的根文件夹。不幸的是,我一直找不到任何关于如何做到这一点的信息。这是我尝试过的,我知道这是不正确的,但这是我能找到的最好的合作方式。

RewriteCond %{HTTP_HOST} ^(www.)?domain.(int|com)$ [NC,OR]
RewriteCond %{REQUEST_URI} !^/s3i.flat/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_COOKIE} s=n2014 [NC]
RewriteRule ^(.*)$ /s3i.flat/$1
RewriteRule ^(.*)$ /s3i.2014/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.(int|com)$ [NC]
RewriteCond %{HTTP_COOKIE} s=n2014 [NC]
RewriteRule ^(/)?$ s3i.flat/ [L]
RewriteRule ^(/)?$ s3i.2014/ [L]

我要做的是,如果名为s的cookie等于n2014,则使用s3i.flat目录;如果cookie未设置或不等于,则使用另一个目录。有人知道这样做的方法吗?提前谢谢。

如果其他人想要这个问题的答案,我终于想明白了。以下是我所想出的成功的方法。如果有人对此有任何修改,请告诉我们。

RewriteCond %{HTTP_HOST} ^(www.)?domain.(int|com)$ [NC]
RewriteCond %{HTTP_COOKIE} s=n2014 [NC]
RewriteRule ^(.*)$ /s3i.flat/$1 [L]
RewriteRule ^(.*)$ /s3i.2014/$1 [L] 

对于那些想知道的人,我使用int作为本地建筑的TLD。如果不这样做,只需将(int|com)替换为com即可。至于其余部分:

我的特定cookie名称是s,值是n2014。你可以用自己的价值观来取代每一个。代码的这一部分是查看cookie是否存在。第三行告诉站点,如果存在cookie,请使用s3i.flat目录作为我的根目录;第四行告诉站点如果不存在cookie,则使用s3i.2014目录。

只要用你自己的价值观取代一切,它就会正常工作。同样,如果有人可以在此基础上再接再厉,或者有什么建议可以让它变得更好,请告诉我们!

最新更新