1 votes

Quelle est la bonne façon de créer des répertoires virtuels dans Apache sans utiliser de liens symboliques ?

Je viens de IIS et la mise en place de répertoires virtuels y est agréablement facile. Il suffit de faire un clic droit et d'ajouter un "répertoire virtuel" pointant vers le chemin de votre choix. Ce chemin relatif est reflété par le navigateur lors de la consultation du site.

Comment faire la même chose avec Apache ? Les liens symétriques me font peur parce que la suppression se répercute en cascade. Existe-t-il un meilleur moyen de créer des répertoires virtuels dans Apache ? J'utilise MAMP pour Mac qui utilise Apache2.

4voto

Scott Duckworth Points 806

Utilisez le Alias dans le fichier de configuration d'Apache.

Alias /virtual-dir /var/www/foo

En outre, rm -r ne traverse pas les liens symboliques et n'est pas utilisé en cascade.

0voto

Frank Forte Points 101

Si vous faites pointer plusieurs domaines vers le même répertoire html public, et que le contenu réel réside en dehors du html public (racine web), vous pouvez le faire en deux étapes :

1) réécrire le répertoire par domaine, par ex.

<VirtualHost 127.0.0.1:80>
  ServerName host_one.ca
   RewriteEngine On
    RewriteRule "/?images(.*)" "/www/shared/host_one/images/$1" [NC]
</VirtualHost>
<VirtualHost 127.0.0.1:80>
  ServerName host_two.ca
   RewriteEngine On
    RewriteRule "/?images(.*)" "/www/shared/host_two/images/$1"
</VirtualHost>

2) Ajoutez ensuite les liens symboliques (alternativement, l'Alias)

ln -s /shared/host_one/images /www/html/images/host_one
ln -s /shared/host_two/images /www/html/images/host_two

Faites attention. Les images de host_two sont accessibles via host_one : domaine_un.ca/images/host_two/{filename}

A moins que vous n'ajoutiez des règles supplémentaires pour que tout ce qui n'est pas dans le répertoire actuel de l'hôte soit supprimé. Pour le VirtualHost host_one (j'ai fait no confirmer si cette règle fonctionne) :

    # prevent showing content from other hosts
    RewriteRule "/?images/!(host_one/.*)" /404 [NC,L]

0voto

zzapper Points 311

S'il s'agit d'un serveur sécurisé, le répertoire 'Alias' doit également se trouver dans la configuration du VirtualHost 443.

<VirtualHost *:443>
...
Alias /virtual-dir /var/www/foo
</VirtualHost>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X