2010-10-21 6 views
0

problème simple:php redirect ne fonctionne pas avec Nginx

Je conditions en php comme ceci:

if (!$authorized) 
    show_site_404(); 

ou comme si pour cette matière

if (!$logged_on) 
    show_login_page(); 

Ce sont évidemment les barrières de péage si que nous n'avons pas d'intrus dans des parties du système où seul un utilisateur spécifique ou seulement ceux qui sont connectés devraient pouvoir y aller.

Le code dans les deux cas, ces charges simplement une autre page que celle qui était destinée par

require(MAINPATH . 'site-404.php'); 
exit(); 

Avec Apache, cela n'a jamais été un problème. Aucun paramètre requis Avec Nginx, il envoie tous ces appels à la page d'accueil. C'est comme si elle n'acceptait pas un "re-direct" interne si vous voyez ce que je veux dire.

Toute aide appréciée.

+1

Etes-vous en train d'essayer de 'rediriger' l'utilisateur ou de sortir différents fichiers html sur la page en cours? – RobertPitt

+0

Vous devez aussi coller votre nginx vhost. – Till

Répondre

0

Le problème avec require comme ceci arrêterait votre script avec un message d'erreur bien que les erreurs soient désactivées vous ne le remarqueriez probablement pas lorsque vous exécuterez un exit(); pour arrêter l'exécution de toute façon.

Vérifiez que la variable constante inclut les fichiers, essayez-les dans le même répertoire sans la constante mainpath.