J'espère qu'il y a un moyen de le faire avec mod_rewrite et Apache, mais peut-être y a-t-il une autre façon de le faire aussi.Redirige les demandes uniquement si le fichier est introuvable?
Sur mon site, j'ai des répertoires mis en place pour les versions re-skinned du site pour les clients. Si la racine Web est /home/blah/www
, un répertoire client est /home/blah/www/clients/abc
. Lorsque vous accédez au répertoire client via un navigateur Web, je souhaite qu'il utilise les fichiers demandés dans le répertoire client s'ils existent. Sinon, je veux qu'il utilise le fichier dans la racine web. Par exemple, disons que le client n'a pas besoin de son propre index.html
. Par conséquent, du code déterminerait qu'il n'y a pas index.html
dans /home/blah/www/clients/abc
et utilisera à la place celui de /home/blah/www
. Gardez à l'esprit que je ne veux pas rediriger le client vers la racine web à tout moment, je veux juste utiliser le fichier racine du web avec ce nom si le répertoire client n'a pas spécifié sa propre copie. Le navigateur Web doit toujours pointer vers /clients/abc
si le fichier existe à cet endroit ou à la racine. De même, s'il y a une demande de news.html
dans le répertoire du client et que existe existe, il suffit de servir ce fichier au lieu du news.html
de la racine Web. L'expérience de l'utilisateur devrait être transparente.
J'ai besoin que cela fonctionne pour les demandes sur n'importe quel nom de fichier. Si je dois, par exemple, ajouter une nouvelle ligne à .htaccess
pour chaque fichier que je souhaite rediriger, cela va à l'encontre du but car il y a trop de maintenance nécessaire, et il y a de bonnes chances d'erreurs étant donné le grand nombre de fichiers.
Dans vos exemples, veuillez indiquer si votre code va dans le fichier .htaccess dans le répertoire client ou dans la racine web. La racine Web est préférée.
Cela semble trop court pour faire ce que je veux. Pouvez-vous expliquer la logique un peu? Merci! – DivideByHero