2009-08-11 8 views
0

Ich bin mir nicht ganz sicher, ob dies möglich ist und versuchte zu suchen, konnte aber nicht die genaue Antwort auf meine aktuelle Situation finden.Umschreiben einer URL für eine benutzerdefinierte Domäne

Ich baue einen Dienst, der es Benutzern ermöglichen sollte, ihre eigene Domäne auf den Dienst zu verweisen. (Sie müssen einen A-Eintrag auf meine Server-IP zeigen)

Ich bin in der Lage, die Domäne mit dem Fang alle in Apache zu fangen. Also habe ich einen Vhost-Record für diesen Catch erstellt, alles in httpd.conf. Daher werden alle nicht definierten Hostnamen in Apache auf ein bestimmtes Verzeichnis gerichtet.

Jetzt möchte ich diese Domain als Parameter an meinen Dienst übergeben. So ist es möglich, www.mywebserviceurl.com/domain/catch/this.randomdomain.com zu Punkt this.randomdomain.com mit .htaccess

Die Adressleiste die URL halten sollte this.randomdomain.com

Edit:

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

das obige wird Umleitung aber firefox trows ein Fehler „die Seite wird nicht richtig umgeleitet - Firefox hat erkannt, dass der Server in einer Weise, die Anforderung für diese Adresse wird umgeleitet, die nie abgeschlossen. " Und die Adresse ändert sich was ich nicht will.

danke!

Antwort

1

die Domain von der Regel ausschließen: zu

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

Und wenn Sie die Domain wollen:

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

danke, das funktioniert, aber wie kann ich dies für den Benutzer unsichtbar machen? – SePP

+0

Sie werden wahrscheinlich einen Proxy verwenden (erfordert mod_proxy), um das zu tun. Fügen Sie einfach das "P" -Flag hinzu. – Gumbo

+0

Wenn ich [R = 301] zu [P] ändere, unterbricht es die Weiterleitung und ich bekomme eine 404 Seite nicht gefunden. – SePP

0

Wenn Sie Gumbo Antwort, aber die Argumente in den Klammern ändern, können Sie leise umleiten. Ändern Sie [R=301] in [L], was bedeutet, dass es die letzte Regel ist, die ausgeführt wird.

Bearbeiten: Nachdem Sie die Antwort von Gumbo gesehen haben, müssen Sie auch mod_proxy aktivieren und das P-Flag hinzufügen.

+0

Ich habe es auf [L] geändert, die Weiterleitung funktioniert weiter, aber er tut es nicht lautlos. Es ändert die Adressleiste. – SePP

+0

Gumbo's aktualisierte Antwort sollte funktionieren. Ich habe meine Antwort bearbeitet, um seine zu ergänzen. –