17

Ich habe etwa 18 Domänen, die auf eine neue Domäne umgeleitet werden müssen. Es muss sowohl mit als auch ohne www vorangehen.Umleiten mehrerer Domänen zu einer Domäne (mit oder ohne www zuvor)

Ich habe dies versucht: (und funktioniert nur mit www vor, ich glaube)

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    Rewritecond %{HTTP_HOST} !^www\.domain\.com 
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 
</IfModule> 

, dass mir eine Umleitung Schleife gibt.

+0

Weil das '[OR]' am Ende jeder Domain nicht in Ihrer Antwort war, und das löste mein Problem. – qwerty

Antwort

30
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain1.com [OR] 
RewriteCond %{HTTP_HOST} ^domain2.com [OR] 
RewriteCond %{HTTP_HOST} ^domain3.com [OR] 
RewriteCond %{HTTP_HOST} ^domain4.com [OR] 
RewriteCond %{HTTP_HOST} ^domain5.com 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L] 

Dies wird umleiten alle 18 Domains auf Ihre auf Ihre neue Single Domain www.newdomain.com Ansonsten können Sie mit folgenden Code verursachen würde umleiten jede Domain, wenn sie auf separaten

Hosting
RewriteCond %{HTTP_HOST} ^domain.com 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L] 
+0

Danke, ich werde es versuchen. – qwerty

+0

Yup, das [OR] löste das Problem, das ich hatte. Vielen Dank! – qwerty

+0

Sie sind Willkommen ... –

-1
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L] 

Die ^domain.com löst das Problem des WWW, so dass alle Sub-Domains wird nun umgeleitet werden.

Stellen Sie sicher, dass http://www.newdomain.com nicht in der RewriteCond enthalten ist.

, dass eine Umleitung Schleife

More info

+0

Ist es möglich, "alles, was * nicht * newdomain.com" ist, abzugleichen, anstatt jede Domäne manuell als "RewriteCond" hinzuzufügen? Dies wäre ein großer Aufwand für mich, da es etwa 18 Domains gibt, die auf das neue verweisen, und der Kunde erwägt, bald weitere hinzuzufügen (und ich möchte nicht jedes Mal in den .htaccess einsteigen). – qwerty

+0

Nicht sicher, Sie müssen recherchieren. Aber 18 ist wirklich nicht so viele ... – surfer190

+0

'RewriteCond% {REQUEST_URI}!^Newdomain.com' Ich denke, das könnte funktionieren – surfer190

17

Stattder Umleitung, b.com, c.com zu newdomain.com Sie können dies tun:

alles umleiten, die nichtnewdomain.com zu http://www.newdomain.com

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !newdomain.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301] 

Kredit dafür ist, geht an: http://www.raramuridesign.com/blog/83-dev-htaccess-redirect-a-domain-or-multiple-domains.html wo es näher erläutert wird.

Ich habe es für ein Client-Projekt ausprobiert und es funktioniert wie ein Charme.

+0

ì denke, dass, wenn ich die' RewriteCond' Adresse zu 'www.newdomain.com' vervollständige, Es wird auch jede Subdomain auf www umleiten. habe ich recht? – robotik

+0

Das funktioniert gut, außer wenn etwas an die URL angehängt ist (z. B. example.com/members). Ist es möglich, es zu erweitern, um automatisch die letzten Teile der eingegebenen URL einzuschließen? – melat0nin

4

Meine Erfahrung nach ein paar Tagen stöbern SO und andere Gastgeber Anweisungen war enttäuschend. Allerdings habe ich handverlesene die besten workful Teile von ihnen allen und ergibt folgendes:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^domain1\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain2\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^domain2\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain3\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^domain3\.com$ 
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/" [R=301,L] 
  • Das obige Format wird auch nach cPanel Art der Umleitung in GUI vorgenommen.
  • Umleitung von www. Version und nicht www. Version von Domains ist eines der Probleme, die andere Lösungen (zumindest habe ich sie versucht!) konnte es nicht lösen.
  • Achten Sie auf ^/?$ in RewriteRule

Wenn Sie www-Version der Hauptdomäne in die nicht-www-Version davon, die letzten beiden Zeilen sollten so sein umleiten:

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
RewriteRule ^/?$ "http\:\/\/domain\.com\/" [R=301,L] 

Gute Umleitung!

Verwandte Themen