2009-12-05 2 views
0

Je construis une application symfony qui est faite pour exécuter de nombreux sites. Similaire à this article. Jusqu'ici tout va bien, sauf qu'il utilise un peu de .htaccess "vaudou". Pour que les liens de fichiers image et css soient réécrits afin de pointer vers un répertoire d'assets nommé d'après le domaine en cours. Encore une fois lire l'article ci-dessus si cela n'a pas de sens.en utilisant .htaccess pour modifier la base des chemins actifs sur le domaine (plusieurs sites sur une application symfony)

Voici la ligne de l'article:

RewriteCond /home/ash/projects/carshop/trunk/web/perhost/%{HTTP_HOST}%{REQUEST_FILENAME} -f 
RewriteRule (.*) /perhost/%{HTTP_HOST}/$1 [L] 

est ici la même ligne adaptée pour mon serveur de test de Windows:

RewriteCond C:/xampp/projects/listing/web/sites/%{HTTP_HOST}%{REQUEST_FILENAME} -f 
RewriteRule (.*) /sites/%{HTTP_HOST}/$1 [L] 

Y at-il quelque chose de mal avec ma syntaxe ou suis-je pas la compréhension ce que ce code .htaccess est supposé faire. J'ai vérifié et mod_rewrite est activé. Ce que j'essaie de faire est de ne pas avoir à interroger la base de données (pour récupérer le site web actuel) afin d'obtenir le bon chemin vers les fichiers. Chaque domaine aurait ses images, css, fichiers dans son propre répertoire qui porte son nom.

comme ce

  • web/sites/website1.com/{images, js, css}
  • web/sites/website2.com/{images, js, css}
Dites-moi si vous avez besoin de plus d'informations.

Merci!

+0

Je n'ai pas le temps pour une réponse complète pour laquelle je présente mes excuses. Si je me souviens bien, le Cond est généralement un chemin web, pas un chemin de fichier. –

Répondre

0

REQUEST_FILENAME est déjà un chemin de système de fichiers absolu:

REQUEST_FILENAME
Le chemin de système de fichiers local complet du fichier ou correspondant à la demande script.

Mais pourquoi ne pas utiliser $1 dans la condition aussi que c'est aussi la destination que vous souhaitez rediriger vers:

RewriteCond /home/ash/projects/carshop/trunk/web/perhost/%{HTTP_HOST}/$1 -f 
RewriteRule (.*) /perhost/%{HTTP_HOST}/$1 [L] 
Questions connexes