2010-06-14 3 views
0

Je travaille sur un site Web dans un site de CMS. J'ai fourni un lien dans mon fichier de pied de page, par exemple blogs.php. Cette page est à la racine comme « http://www.example.com/new_cms/blogs.php »Chemin absolu d'URL pour le site Web de PHP

Quand je passe à d'autres fichiers comme un lien « http://www.example.com/new_cms/forums » le lien de bas de page est remplacé par « http://www.example.com/new_cms/forums/blogs.php », mais la page blogs.php réside au chemin « http://www.example.com/new_cms/ ». J'ai essayé différentes variables $ _SERVER [] mais je n'ai pas eu de chance d'obtenir le chemin ci-dessus "http://www.example.com/new_cms/" signifie le nom du serveur avec le répertoire où le projet est actuellement en cours d'exécution. Toute personne ayant une idée de comment le faire sera une aide précieuse.

Merci

+0

pouvez-vous s'il vous plaît fournir le code que vous utilisez pour afficher le lien? Vous pouvez l'éditer dans votre question pour nous. –

Répondre

0

Vous pouvez utiliser une URL absolue ou essayer de réécrire votre URL avec une condition.

2

Ceci est probablement parce que votre lien a une URL relative en elle, comme si:

<a href="blogs.php">Blogs</a> 

Il semble donc pour le fichier blogs.php dans le répertoire courant.

Si vous voulez que le lien pour pointer vers le fichier blogs.php qui se trouve dans le dossier new_cms, vous devez utiliser un lien comme celui-ci:

<a href="/new_cms/blogs.php">Blogs</a> 
+0

Merci Amis pour toute votre aide :) Je pense que je dois utiliser le chemin statique du répertoire dans mon répertoire de site www racine. – kakaajee

0

Vous pouvez obtenir le nom du serveur de $_SERVER['SERVER_NAME'] qui est le nom du serveur canonique spécifié dans la configuration serveur/hôte virtuel. En plus de cela $_SERVER['HTTP_HOST'] vous donne l'hôte spécifié dans le HTTP request header field Host. En général, ces deux valeurs sont identiques. Mais puisque les deux peuvent être manipulés par l'entrée de l'utilisateur (voir Chris Shiflett’s SERVER_NAME Versus HTTP_HOST), vous devez faire attention lors de leur utilisation. En ce qui concerne le chemin, vous devrez probablement spécifier le chemin d'URL de base par nous-mêmes. Parce que si vous pensez à des techniques de réécriture d'URL, le chemin physique (chemin du système de fichiers) n'a pas besoin d'être le même que le chemin logique (chemin d'URL). Vous ne pouvez donc pas dériver le chemin de base logique à partir du chemin de l'URL demandée, du chemin du fichier de script et de la racine du document.

Questions connexes