web-dev-qa-db-fra.com

Configurez les fichiers pour qu'ils proviennent d'un emplacement central, sauf si ce fichier a été personnalisé pour un site spécifique.

J'ai un utilisateur A sur un serveur, cet utilisateur a un ensemble de scripts de travail (html + js + css + tout le reste).
J'ai aussi des utilisateurs B- [autant que je veux]. Je veux que ceux-ci utilisent exactement les mêmes fichiers, mais s’ils ont le fichier eux-mêmes, utilisez-le. Comme un file_exists() multi-utilisateur au niveau du serveur.

Supposons que l'utilisateur B ait /templates/index.html, je veux que le site utilise tous les fichiers de l'utilisateur A, à l'exception de ce modèle (qui est l'utilisateur B). Tout comme un alias, jusqu'à ce qu'un fichier existe.

Quelqu'un pourrait-il m'indiquer la bonne direction, je suis capable de travailler au niveau du serveur, je ne connais tout simplement pas les termes, je ne sais pas ce que je recherche.


Exemple:

USER A                  USER B                      USER C
.htaccess                                           
index.php                                           
/templates/             /templates/                 /templates/
    - index.html                                    
    - header.html           - header.html           
    - footer.html                                   - footer.html

USER B utilise all des fichiers de USER A, en plus de header.html
USER C utilise tous des fichiers de USER A, en plus de footer.html

Un moyen facile d'expliquer: l'utilisateur B & C est un alias de A, à part les quelques fichiers existants. Les jolies URL doivent rester actives.

1
Martijn

Si vous utilisez le serveur Web Apache, vous pouvez utiliser:

# Turn on redirection module in case not already on
RewriteEngine On
# If requested file doesn't exist
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
# and the requested file is /scripts/script.php
RewriteCond %{REQUEST_FILENAME} ="/scripts/script.php"
# then use the script made available to all users
RewriteRule ^.*$ /scripts-global/script.php [L]

Bien qu'il soit probablement utile de mentionner que dans Apache v2.2, le - f test (pour voir si un fichier existe) ne fonctionne pas avec les chemins relatifs, donc si vous cherchez à remplacer %{DOCUMENT_ROOT}, alors vous ' Vous devrez le remplacer par un chemin complet tel que / home/users/martijn.

1
richhallstoke