web-dev-qa-db-fra.com

Servir un sous-répertoire à partir d'un répertoire côté serveur parallèle

J'ai un serveur Apache fonctionnant avec deux dossiers dans un sous-répertoire (/ var/www/html/example), une configuration d'hôte virtuel dans httpd.conf sert des URL depuis/var/www/html/example/website et/var/html/exemple/service

J'aimerais que le dossier/var/html/example/service soit la racine lors de la navigation vers example.com/services/ et que/var/www/html/example/website soit la racine lorsque vous y accédez via exemple. .com /

Voici ce que j'ai ajouté à partir de mon fichier httpd.conf (sans surprise, cela ne fonctionne pas mais par souci de clarté):

<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com/services
DocumentRoot /var/www/html/example/service
</VirtualHost>

<VirtualHost *:80>
ServerName www.example.com
ServerAlias mysite.com www.example.com
DocumentRoot /var/www/html/example/website
</VirtualHost>

Est-ce possible à réaliser? Je pensais utiliser des redirections ou changer virtualhost pour le faire si c'est même possible. Je suis surtout préoccupé par le conflit entre le site Web et les services.

Le site Web sera un site WordPress si cela ne change rien.

1
meds

Vous devez utiliser la directive Alias de mod_alias . Il est conçu pour servir des documents pour un chemin depuis un répertoire côté serveur différent:

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/html/example/website
    Alias "/services" "/var/www/html/example/service"
</VirtualHost>

Quelques notes sur ce que vous avez essayé:

  • Vous ne pouvez avoir qu'une seule configuration d'hôte virtuel par domaine. Votre tentative de créer deux hôtes virtuels pour votre site unique ne fonctionnait pas.
  • ServerAlias ​​est uniquement pour les noms de domaine. Ouvrir un chemin qui ne va pas marcher.
1