2010-09-17 4 views
0

J'ai besoin d'une règle mod_rewrite pour rediriger l'url en fonction du nom d'hôte à partir duquel elles sont envoyées.Remplacez les parties de l'URL par mod_rewrite

La situation:

Nous avons plusieurs domaines pointant vers un même espace web et nous devons limiter ce que l'hôte spécifique peut voir/télécharger.

domainname.com/images/logo.jpg et /www.domainname.com/images/logo.jpg devraient se transformer en domainname.com/domainname_com/images/logo.jpg

Donc, fondamentalement, je besoin d'une règle/function qui remplace les points du% {HTTP_HOST} par _ et supprime/remplace le sous-domaine www.

Y at-il un moyen de le faire avec mod_rewrite?

Répondre

0

Essayez ces règles:

RewriteCond %{ENV:DOMAIN_DIR} ^$ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.+) 
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%2] 

RewriteCond %{ENV:DOMAIN_DIR} ^([^.]*)\.(.+) 
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%1_%2,N] 

RewriteCond %{ENV:DOMAIN_DIR} ^[^.]+$ 
RewriteRule ^images/.+ %{ENV:DOMAIN_DIR}/$0 [L] 

La première règle prendra l'hôte et le stocker sans www. dans la variable d'environnement DOMAIN_DIR. La deuxième règle remplacera un point à la fois; l'indicateur N permet de redémarrer le processus de réécriture sans incrémenter le compteur de récursivité interne. Enfin, la troisième règle va réécrire la requête dans le répertoire correspondant.

Questions connexes