如何根据cookie设置我的根目录?

时间:2014-06-04 21:22:51

标签: .htaccess

我正在尝试使用我的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]

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

1 个答案:

答案 0 :(得分:0)

如果其他人想要回答这个问题,我终于弄明白了。以下是我提出的成功的方法。如果有人进行任何修改以使其更好,请告诉我们。

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目录。 / p>

只需用您自己的值替换所有内容,它就可以正常工作。再说一遍,如果有人可以在此基础上建立,或者有建议让它变得更好,请告诉我们!