【问题标题】:apache redirect based on cookies content基于 cookie 内容的 apache 重定向
【发布时间】:2017-06-21 12:06:19
【问题描述】:

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

 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(学生和教师) 但是即使用户是老师,这也只会将我重定向到 /student 页面。

【问题讨论】:

    标签: angularjs mod-rewrite cookies apache2.4


    【解决方案1】:

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

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

    这会将 /anyuri/ 重定向到 /teacher 如果 cookie 值为 Teacher 或 /student 如果值为 Student 。 p>

    让我知道它是如何为你工作的。

    【讨论】:

    • 它给 www.localhost.com 重定向了太多次。我确实清除了 cookie,但还是一样
    猜你喜欢
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多