2010-07-28 6 views
2

Donc c'est ma structure de répertoireComment définir la racine du document local dans Apache?

/ 
/test 
    index.php 
    blah.php 
blah.php 

Donc /test/index.php j'ai un lien tel que celui

<a href="/blah.php">Link</a> 

mais je veux qu'il lien vers /test/blah.php, pas le blah.php dans le répertoire racine. Fondamentalement, je veux définir une racine de document local. Est-ce possible de régler ceci en utilisant .htaccess ou dans le httpd.conf?

+0

Voulez-vous créer/tester la racine de tout votre site, ou seulement la racine des liens sur les pages de ce répertoire? – grossvogel

+0

Seule la racine des liens sur les pages de ce répertoire – axsuul

+0

Je suppose que je n'ai pas demandé ce que je voulais demander. Essayez-vous de créer un site autonome dans ce répertoire/test, qui n'utilise pas de pages en dehors de/test? Si c'est le cas, la solution de meder fonctionnera probablement. Sinon, je ne vois pas d'autres options que celles mentionnées dans ma réponse. – grossvogel

Répondre

1

Si une balise a sur /test/index.php a son href ensemble à /blah.php, il est le navigateur qui est l'interprétation que pointant vers un fichier à la racine du document. Vous ne pouvez donc pas obtenir ce que vous voulez sans modifier la façon dont vous générez l'attribut href.

Vous avez deux options pour cela:

  • Vous pouvez omettre la barre oblique pour générer des liens relatifs à l'URL actuelle au lieu de la racine du document. Un lien en /test/index.php pointant vers blah.php sera interprété comme /test/blah.php.

  • Vous pouvez écrire du code personnalisé pour générer vos liens. Vous pouvez avoir une fonction my_special_link ($link) qui prend en compte blah.php et ajoute par avance le répertoire du fichier en cours, par exemple.

1

Ajouter ceci à votre httpd.conf ou mieux encore mis dans un répertoire VirtualHost

NameVirtualHost *:80 

<VirtualHost *:80> 
ServerName blah.localhost 
DocumentRoot C:\web\test 
</VirtualHost> 

Dans WINDOWS \ System \ system32 \ etc \ bin ou quelque part (cherchez le fichier "hosts), hôtes modifier fichier il a donc

127.0.0.1 blah.localhost 

Redémarrez apache et accédez à blah.localhost dans le navigateur.

Questions connexes