如何根据cookie值做htaccessredirect

我在Google上失败了,在这里找不到答案。 对不起,我在htaccess上是一个新手,它有很奇怪的语法,很难学!

你可以看到我想在这里做什么…

RewriteEngine on RewriteCond %{HTTP_COOKIE} ^.*user_id=(\d+).*$ [NC] RewriteRule .* http://localhost/mysite/cache/$1 [R=301,L] RewriteRule .* http://localhost/mysite/cache/guest [R=301,L] 

我正在为每个用户caching页面的加载速度。 我想redirect到正确的HTMLcaching文件夹,如果他们用cookielogin,否则我想加载客户端caching。

现在它进入一个infi循环。 如果我删除[R = …然后我得到内部服务器错误。

请帮忙!!! 谢谢!!!

这适用于像id=1234的cookie:

 RewriteEngine on RewriteCond %{HTTP_COOKIE} ^id=([0-9]*)$ [NC] RewriteRule .* http://localhost/mysite/cache/%1 [R=301,L] RewriteRule .* http://localhost/mysite/cache/guest [R=301,L] 

现在为您的问题:请确保您的htaccess不适用于您重写的页面! 例如,如果你的.htaccess位于/mysite/.htaccess

它会被再次使用

 http://localhost/mysite/cache/%1 

这也许是你无限循环的原因。 要解决此问题,请确保htaccess规则不应用于子目录或使用另一个目录作为caching。

以下是有这个问题的其他人的解决scheme:

 RewriteEngine on RewriteRule ^.+$ - [L] RewriteCond %{HTTP_COOKIE} ^.*user_id=(\d+).*$ [NC] RewriteRule .* http://localhost/mysite/$1 [R=301,L] RewriteRule .* http://localhost/mysite/guest [R=301,L] 

虽然我还没有testingcookie部分 – 我相信会有更多的问题在那里! 但其余的我testing,它的作品! (它去客人,然后不进入infi循环,耶!)

祝你有美好的一天! 8)