J'ai récemment mis en place un serveur Web/multimédia domestique et rencontre quelques difficultés avec quelques réglages. Cela fonctionne très bien pour servir des pages Web, etc., mais j'ai maintenant réorganisé la structure de la racine du document principal et le jeu est difficile à obtenir.
La structure actuelle est:
-drive
--sites
---live
----siteA
----siteB
----siteC
---dev
--media
---films
---series
Ce que j'essaie de faire, c'est de servir siteC lorsque siteA/siteC est appelé.
Par exemple, mydomain.com présentera les fichiers qui se trouvent sur le siteA, c'est très bien. SiteB et SiteC n'ont pas leurs propres domaines, etc., et je ne veux pas qu'ils soient des sous-dossiers de SiteA. Ce que j'aimerais par conséquent, c'est que mydomain.com/siteB serve le contenu de siteB et le même contenu que siteC.
J'aimerais ensuite utiliser le même principe pour le serveur de médias afin que myDomain.com/media affiche une liste de répertoires des fichiers dans le répertoire de médias.
la racine du document dans Apache est d:/sites/live. J'utilise ensuite des hôtes virtuels pour déterminer ce qui se passe. Cela convient très bien avec mydomanA.com ou myDomainB.com standard, mais pas lorsque vous essayez d'atteindre ce que j'ai mentionné ci-dessus.
C'est l'une des tentatives:
<VirtualHost *:80>
DocumentRoot "D:/Sites/Live/siteA"
ServerName www.mydomain.com/siteA
<Directory "D:/Sites/Live/siteA">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Une autre tentative infructueuse utilisant des alias à la place:
<VirtualHost *:80>
DocumentRoot "D:/Sites/Live/siteA"
ServerName www.mydomain/siteA
<Directory "D:/Sites/Live/siteA">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /siteA D:/sites/live/siteA
<directory "D:/sites/live/siteA">
Order allow,deny
AllowOverride All
</directory>
</VirtualHost>
Merci pour toute aide, je tire mes cheveux pendant les dernières heures pour essayer de trouver une solution.
Edité pour répondre au commentaire.
Les entrées et sorties attendues seraient les suivantes:
mydomain.com = d:/sites/live/siteA
mydomain.com/siteB = d:/sites/live/siteB
mydomain.com/siteC = d:/sites/live/siteC
et le serveur multimédia serait:
mydomain.com/media = d:/media
L'utilisateur trecht sur serverfault a posté cette réponse:
Les éléments suivants ont été testés sur Scientific Linux:
<VirtualHost *:80>
DocumentRoot "/var/www/html/siteA"
Alias /siteB/ "/var/www/html/siteB/"
<Directory "/var/www/html/siteB/">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /siteC/ "/var/www/html/siteC/"
<Directory "/var/www/html/siteC/">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /media/ "/media/"
<Directory "/media/">
Options +Indexes
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
et les résultats du test sont les suivants:
Input
Output
mydomain.com
content of siteA
mydomain.com/siteA/
404
mydomain.com/siteB/
content of siteB
mydomain.com/siteC/
content of siteC
mydomain.com/media/
content of media
Remarque: l'accès au répertoire /media
a entraîné l'enregistrement de Directory index forbidden by Options directive:
par le journal error.log. L'ajout de Options +Indexes
a résolu le problème. Cette solution a été trouvée ici .