2009-03-21 7 views
2

Ich habe kürzlich eine neue Domain für meine WordPress-Site gekauft und möchte jeden, der eine alte Domain besucht, auf die neue Domain umleiten. Ich habe die Server nicht verschoben, habe nur eine neue Domain hinzugefügt.Mit .htaccess von einer Domain in eine andere umleiten

Zum Beispiel, wenn sie entweder von diesen gingen:

http://www.example.net/some-article/ 
http://example.net/some-article/ 

Dann würde Ich mag sie an die entsprechende URL umgeleitet werden:

http://www.example.com/some-article/ 
http://example.com/some-article/ 

Wie würden Sie diese einfach tun. net -> .com Redirect mit einer .htaccess Datei? Jede Regel sollte für alle URLs unter der .net-Domain gelten.

Vielen Dank im Voraus.


Edit: Ich habe bereits die .htaccess-Datei auf dem Server:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

AddHandler php5-script .php 

Antwort

8

Sie müssen Befehle wie dies in der .htaccess-Datei hinzuzufügen:

dauerhafte Umleitung/some -article/http://www.example.com/some-article/

Ist das ein Server mit mod_rewrite? In diesem Fall können Sie eine generische Umleitung für alle Pfade tun:

RewriteEngine On 

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301] 
+0

Ich bekomme eine Umleitungsschleife, wenn ich das zu meinem hinzufügen.htaccess-Datei (siehe in der editierten Originalfrage) direkt unter der RewriteRule. –

+0

Versuchen Sie, die alten mod_rewrite-Befehle zu entfernen, und prüfen Sie, ob dadurch das Schleifenproblem gelöst wird. Ansonsten: Welche URL (s) durchlaufen sie? Eine Möglichkeit zu sagen ist "wget ​​http://www.example.net/some-article/" in Ihrer Linux-Konsole eingeben. –

+0

+1 zur Vereinfachung. Dachte auch, du brauchst einen Schub, um über 5000 Punkte zu bekommen! ;) hehe. – Frankie

0

ich vor einer Weile von Drupal zu Wordpress konvertiert, und ich am Ende eine Menge Zeit damit verbringen, bis diese Umleitungen zu bekommen richtig zu arbeiten. Mein großer Fall war, herauszufinden, wie man RewriteCond in Verbindung mit RewriteRule benutzt. Hier ist ein Auszug aus einem Artikel, den ich darüber schrieb:


# Rewrite drupal urls to worpress 
RewriteCond %{QUERY_STRING} ^q=node/(.+)$ 
RewriteRule ^(.*)$ http://blog.componentoriented.com/?p=%1 [R=301,L] 

# Forward RSS feed 
RewriteCond %{QUERY_STRING} ^q=rss.xml$ 
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L] 
RewriteCond %{QUERY_STRING} ^q=atom/feed$ 
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L] 

Es ist auch sehr hilfreich, ein Auge auf eingehende Hits und Links zu sehen, ob jemand eine alte Form der URL verwendet, die Sie noch nicht zu übersetzen. Ich hatte einen eingehenden Link, der als PostNuke-URL (vor zwei Blog-Plattformen!) Kodiert war, und diese Technik machte es wirklich einfach zu beheben.

Hier ist ein Link zu meinem Artikel, btw: Use .htaccess to redirect from Drupal to Wordpress

3

Ich würde Ihren vorhandenen Rewrite Block ändern wie folgt aussehen:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# New code to redirect from example.net to example.com 
# Permanent redirect for caching purposes, also include the query string 
RewriteCond %{HTTP_HOST} ^example\.net 
RewriteRule (.*) http://example.com/$1 [R=permanent,QSA,L] 

# New code to redirect from www.example.net to www.example.com 
RewriteCond %{HTTP_HOST} ^www\.example\.net 
RewriteRule (.*) http://www.example.com/$1 [R=permanent,QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

AddHandler php5-script .php 

Bitte beachte, dass ich das nicht wirklich getestet ...

REMOTE_HOST kann auch anstelle von HTTP_HOST arbeiten. Die mod_rewrite documentation empfiehlt HTTP_HOST verwenden, obwohl dies nicht funktionieren, wenn die Brower nur HTTP versteht/1.0

+0

danke, ich liebe vollständige Antworten – IberoMedia

0

alte Domain: RewriteCond% {HTTP_HOST}^abcd.com $ [NC]

Neue Domain: RewriteRule^(. *) $ http://abcdef.com/ $ 1 [R = 301, L]

Ich wette, wenn Sie dies auf Ihre alte Domain setzen und einfach die zweite Zeile ändern, um Ihre neue Domain zu verwenden, würde es funktionieren.