2009-08-11 6 views
0

Je ne suis pas entièrement sûr si cela est possible et j'ai essayé de chercher mais je n'ai pas trouvé la réponse exacte à ma situation actuelle.Réécriture d'une URL pour un domaine défini par l'utilisateur

Je construis un service qui devrait permettre aux utilisateurs de pointer leur propre domaine vers le service. (Ils doivent pointer un enregistrement A vers mon serveur ip)

Je suis capable d'attraper le domaine en utilisant le catch tout en apache. J'ai donc fait un enregistrement Vhost pour cette capture tout dans httpd.conf. Ainsi, tous les noms d'hôtes non définis dans Apache sont dirigés vers un certain répertoire.

Maintenant, je voudrais passer ce domaine en tant que paramètre à mon service. Ainsi est-il possible de pointer this.randomdomain.com à www.mywebserviceurl.com/domain/catch/this.randomdomain.com avec .htaccess

La barre d'adresse doit garder l'URL this.randomdomain.com

Edit:

RewriteEngine On 
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301] 

ci-dessus réoriente, mais une erreur de Firefox trows « la page ne réoriente correctement - Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui ne sera jamais complète. " Et l'adresse change ce que je ne veux pas.

merci!

Répondre

1

Exclure ce domaine de la règle:

RewriteCond %{HTTP_HOST} !=example.com 
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301] 

Et si vous voulez que le domaine aussi:

RewriteCond %{HTTP_HOST} !=example.com 
RewriteRule ^(.*)$ http://example.com/blogs/string/%{HTTP_HOST}/$1 [R=301] 
+0

merci, cela fonctionne, mais comment puis-je rendre cela invisible pour l'utilisateur? – SePP

+0

Vous utiliserez probablement un proxy (nécessite mod_proxy) pour le faire. Ajoutez simplement le drapeau 'P'. – Gumbo

+0

si je change [R = 301] à [P] il casse la redirection et j'obtiendrai une page 404 non trouvée. – SePP

0

Si vous utilisez la réponse de Gumbo, mais changer les arguments dans les accolades, vous pouvez silencieusement réorienter. Remplacez [R=301] par [L], ce qui signifie que c'est la dernière règle qui sera exécutée. Editer: Après avoir vu la réponse de Gumbo, vous aurez également besoin de mod_proxy activé et ajouter l'indicateur P.

+0

Je l'ai changé en [L] la redirection continue de fonctionner mais il ne le fait pas en silence. Cela change la barre d'adresse. – SePP

+0

La réponse mise à jour de Gumbo devrait fonctionner. J'ai édité ma réponse pour correspondre à son. –

Questions connexes