2013-02-11 1 views
0

J'ai plusieurs domaines dans un hôte virtuel comme alias: example.com est primaire, example1.com et example2.com sont des aliasInclure le nom d'hôte dans mod_rewrite RewriteRule

je dois réécrire plusieurs domaines en point d'entrée unique faisant passer via GET requête discaring param le préfixe www par exemple:

HOST -> rewrite to 
www.example1.com/some/path -> [example.com]/index.php?q=domain/example1.com/some/path 
    example2.com/some/path -> [example.com]/index.php?q=domain/example2.com/some/path 

mon .htaccess actuel ne fonctionne pas comme on le suppose

RewriteRule ^(.+) %{HTTP_HOST}$1 [C] 
RewriteRule ^(.*)/(.*) index.php?q=domain/$1/$2 [L,QSA] 

Update1

Essayer d'utiliser RewriteMap - rewrite.map il suit

example-site.com www.examplesite.com 
www.example-site.com www.examplesite.com 

.htaccess

RewriteMap host2site txt:/var/www/rewrite.map 
RewriteRule ^(.*)$ index.php?q=/domain/{host2site:$1|NOTFOUND} [PT] 

mais il se bloque avec l'erreur 500 serveur :(

Répondre

0

Essayez

RewriteCond %{HTTP_HOST} !=example.com [NC] 
RewriteRule ^(.*)$ http://example.com/index.php?q=domain/%{HTTP_HOST}/$1 [L,QSA] 
+0

en réalité cela ne fonctionne pas - la requête résultante est _ ["QUERY_STRING"] => chaîne (83) "q = domaine //" _ Comme il est indiqué dans docs apache _Le motif sera initialement apparié à la partie de l'URL après le nom d'hôte et le port, et avant la chaîne de requête (par exemple "/app1/index.html")._ semble que la carte de réécriture doit être utilisée - peut-elle être configurée via une seule ligne? – Aramaki

Questions connexes