基于cookie内容的apache重定向

时间:2017-02-04 02:14:33

标签: angularjs mod-rewrite cookies apache2.4

我有一个cookie内容名称让我们说用户具有学生和老师的cookie值。现在我要做的是当用户访问网站并且已经登录时,如果用户是学生,我必须将他重定向到/学生页面,如果用户是老师,我必须将其重定向到/教师页面。这是我尝试的方式

 RewriteCond %{REQUEST_URI} ^/index.html$ 
<If " %{HTTP_COOKIE} != 'student'">
RewriteEngine On
RewriteRule ^ /student?%{HTTP_HOST} [L]
</If>
<Else>
RewriteEngine On
RewriteRule .* /teacher.html?%{HTTP_HOST} [L]

但它显示错误消息,配置配置错误,状态错误代码为500。 我也试过这个

RewriteCond %{REQUEST_URI} ^/index.html$ 
RewriteCond %{HTTP_COOKIE} .*client-id.*
RewriteCond %{HTTP_COOKIE}  !cookie=student
RewriteRule ^ /student.html?%{HTTP_HOST} [L]

RewriteCond %{REQUEST_URI} ^/index.html$ 
RewriteCond %{HTTP_COOKIE} .*client-id.*
RewriteCond %{HTTP_COOKIE}  !cookie=teacher
RewriteRule ^ /teacher?%{HTTP_HOST} [L] 

客户端ID是客户端的cookie(学生和教师) 但是,即使用户是老师,这也只会将我重定向到/学生页面。

1 个答案:

答案 0 :(得分:0)

自apache 2.4以来,If和Else指令可供使用。我认为您使用的是较低版本,因此您收到500错误。您可以使用以下规则:

RewriteEngine on

RewriteCond %{HTTP_COOKIE} ^user=(student|user)$ [NC]
RewriteRule ^ /%1/? [NC,L,R]

如果Cookie值为教师,则会将 / anyuri / 重定向到 / teacher ;如果值为Student,则会将 / student 重定向。

让我知道它对你有用。