2009-03-21 9 views
2

J'ai récemment acheté un nouveau domaine pour mon site WordPress et je souhaite rediriger tous ceux qui visitent un ancien domaine vers le nouveau. Je n'ai pas déplacé de serveurs, j'ai simplement ajouté un nouveau domaine.Utiliser .htaccess pour rediriger d'un domaine à un autre

Par exemple, s'ils sont allés à l'une de ces:

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

Je voudrais qu'ils soient redirigés vers l'URL appropriée:

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

Comment feriez-vous cette simple. net -> .com rediriger avec un fichier .htaccess? Toute règle doit s'appliquer à toutes les URL du domaine .net.

Merci d'avance.


Edit: J'ai déjà le fichier .htaccess sur le serveur:

# 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 

Répondre

8

Vous devez ajouter des commandes comme celui-ci à votre fichier .htaccess:

redirection permanente/some -article/

Est-ce un serveur avec mod_rewrite? Dans ce cas, vous pouvez faire une redirection générique pour tous les chemins:

RewriteEngine On 

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

Je reçois une boucle de redirection si je l'ajoute à mon.Fichier htaccess (voir dans la question originale éditée) juste sous le RewriteRule. –

+0

Essayez de supprimer les anciennes commandes mod_rewrite et de voir si cela résout le problème de boucle. Dans le cas contraire: à quelle (s) URL (s) parcourt-il? Une façon de le dire est de taper "wget ​​http://www.example.net/some-article/" dans votre console Linux. –

+0

+1 pour plus de simplicité. Aussi pensé que vous avez besoin d'une poussée pour obtenir plus de 5000 points! ;) hehe. – Frankie

0

Je convertis de Drupal dans WordPress il y a quelque temps, et je fini par passer un tas de temps à essayer d'obtenir ces redirections fonctionnent correctement. Mon grand blocage consistait à comprendre comment utiliser RewriteCond en conjonction avec RewriteRule. Voici un extrait d'un article écrit à ce sujet:


# 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] 

Il est aussi très utile de garder un oeil sur les coups entrants et des liens pour voir si quelqu'un utilise une ancienne forme d'URL que vous n'êtes pas traduire encore. J'ai eu un lien entrant qui a été encodé comme une URL PostNuke (à partir de deux plates-formes de blog!), Et cette technique l'a rendu très facile à corriger.

Voici un lien vers mon article, BTW: Use .htaccess to redirect from Drupal to Wordpress

3

Je modifierais votre bloc de réécriture existant pour ressembler à ceci:

# 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 

Notez que je ne l'ai pas testé ce fait ...

REMOTE_HOST peut également fonctionner au lieu de HTTP_HOST. Le mod_rewrite documentation recommande d'utiliser HTTP_HOST, bien que cela ne fonctionnera pas si le Brower ne comprend que HTTP/1.0

+0

merci, j'aime les réponses complètes – IberoMedia

0

ancien domaine: RewriteCond% {HTTP_HOST}^abcd.com $ [NC]

Nouveau Domaine: RewriteRule^(Je parie que si vous mettez cela à votre ancien domaine et que vous modifiez simplement la deuxième ligne à votre nouvelle utilisation de votre nouveau domaine, cela fonctionnerait.

Questions connexes