2011-07-08 2 views
0

Je souhaite rediriger l'utilisateur en fonction de l'URL de destination et de l'URL de provenance. Dites que j'ai une page d'accueil url http://www.example.com/ et dans cette page il y a un tas de liens qui pointent vers http://www.example.com/page/x/. Lorsque l'utilisateur va à http://www.example.com/page/ de http://www.example.com/ il devrait rediriger vers une autre page. Mais quand l'utilisateur va à http://www.example.com/page/x/ via un lien de http://www.example.com/ il ne devrait pas rediriger. Pour y parvenir, la solution que je pense est d'obtenir l'url de destination ainsi de déterminer correctement si l'utilisateur vient de http://www.example.com/ mais veut voir http://www.example.com/page/x/. Bottom line est que je veux empêcher l'accès à http://www.example.com/page/ mais pas à ses sous-pages.Obtenir l'URL de destination en utilisant PHP?

+0

L'URL de provenance n'est pas fiable, elle peut être facilement usurpée. Est-ce que cela compte? – spraff

+0

@spraff: Dans mon cas, je pense que ce n'est pas grave car il pourrait y avoir des pages. Je voudrais m'assurer que 'http: // www.example.com/page /' ne soit pas accessible sauf ses sous-pages. – jilseego

+0

Il s'agit d'une hiérarchie virtuelle de pages rt, ou par page enfant vous voulez dire les pages dans le dossier 'page' – Balanivash

Répondre

1

Ce que vous essayez de faire ici est effrayant.

Vous ne pouvez pas compter sur le renvoi renvoyé par le navigateur (mais c'est un bon indicateur). Vous pouvez utiliser un javascript générique pour réécrire chaque lien de la page afin d'ajouter une variable CGI contenant l'URL URIencodée de la page en cours (mais où javascript est activé, cela ne fonctionnera pas). Ou vous pouvez mettre réécrire le tampon de sortie pour injecter vars CGI dans hrefs en PHP. Aucun d'entre eux n'est trivial - et s'ils cassent vos utilisateurs ne pourront pas naviguer. Mais en laissant de côté la mise en œuvre pour l'instant - votre solution semble être plutôt absurde.

Si le problème est de

empêcher l'accès à http://www.example.com/page/

mais autoriser les demandes de

http://www.example.com/page/x/

Ensuite, créez un index.php à 0.123.avec quelque chose comme ....

<?php 
header('Location: /', true, 301); 
?> 

ou désactiver l'auto-index sur votre serveur Web.

+0

Ouais je me rends compte que ce n'est pas bon du tout ... – jilseego

0

Comme il semble que personne ne peut accéder au example.com/page/, vous pouvez avoir une fonction Header dans le http://www.example.com/page/ pour rediriger la page vers une autre page.

Questions connexes