2009-08-18 13 views
0

J'essaye d'utiliser l'en-tête() pour diriger vers une page au dessus de la racine du document. Je cours XAMPP donc j'essaye d'appeler un script au-dessus de htdocs.php header() au dessus de la racine du document

Mon problème est qu'il me donne l'erreur 404 et ne trouve pas le document.

Ma question: pouvez-vous utiliser header() pour appeler un script au-dessus de la racine du document ou est-il préférable d'utiliser include() pour y parvenir?

J'essayais d'être un bon programmeur php et de garder tous les scripts avec des mots de passe et l'accès à la base de données au-dessus du dossier htdocs.

Merci d'avance.

Répondre

4

Non, vous ne pouvez pas. Tout ce qui est au-dessus de la racine du document n'a pas d'URL, donc c'est impossible. Vous voulez utiliser un include dans un fichier sous la racine.

La raison pour laquelle vous avez placé tous les fichiers de mot de passe au-dessus de la racine est que les utilisateurs ne peuvent pas y accéder à l'aide d'une URL. Cela signifie également que vous ne pouvez pas les rediriger à l'aide d'une URL.

1

Vous devez utiliser un include; vous ne pouvez pas rediriger un utilisateur vers quelque chose qui n'est pas dans la racine du document.

1

Vous ne pouvez pas utiliser l'en-tête pour accomplir ceci. En-tête est utilisé pour envoyer le navigateur à une URL spécifique - ce que vous ne pouvez pas faire lorsque l'URL ne se trouve pas dans les répertoires de service du serveur.

2

Vous ne pouvez pas utiliser l'en-tête pour rediriger vers quelque chose au-dessus de la racine du document. Une redirection d'en-tête indique au navigateur de demander ce fichier au lieu de celui en cours, et le navigateur peut uniquement accéder aux URL que le serveur met à disposition, ce qui signifie que le fichier est sous la racine du document. Vous pourriez avoir besoin de regarder dans les règles de réécriture (sur Apache, d'autres serveurs fournissent similaires) pour réécrire (ou "mapper") les urls publiques aux scripts au-dessus de la racine du document.