我正在尝试使用我的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,则使用另一个目录,或者不等于那个。有人知道这样做的方法吗?提前谢谢。
答案 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>
只需用您自己的值替换所有内容,它就可以正常工作。再说一遍,如果有人可以在此基础上建立,或者有建议让它变得更好,请告诉我们!