2017-02-04 2 views
0

J'ai un nom de contenu de cookies disons utilisateur qui a la valeur cookie de l'étudiant et de l'enseignant. Maintenant, ce que je dois faire est quand le site de visites d'utilisateurs et est déjà connecté, je dois le rediriger vers/page étudiant si l'utilisateur est étudiant et/la page des enseignants si l'utilisateur est teacher.Here comment j'ai essayéapache redirect basé sur le contenu des cookies

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] 

mais il affiche le message d'erreur de configuration mal configuré avec le code d'erreur d'état de 500. J'ai essayé ainsi

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 client est cookies pour le client (à la fois étudiant et enseignant) mais cela me rediriger uniquement/élève page seulement même si l'utilisateur est enseignant.

Répondre

0

Les directives If et Else sont disponibles depuis Apache 2.4. Je pense que vous utilisez une version inférieure, donc vous obtenez une erreur de 500. Vous pouvez utiliser la règle suivante:

RewriteEngine on 

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

Ceci redirigera /anyURI/ à /enseignant si la valeur du cookie est enseignant ou /étudiant si la valeur est étudiant.

Faites-moi savoir comment cela fonctionne pour vous.

+0

il donne www.localhost.com vous a redirigé trop de fois. J'ai effacé les cookies mais c'est toujours pareil –