web-dev-qa-db-fra.com

La redirection .htaccess ne fonctionne pas pour l'alias Web

J'ai deux domaines chez one.com: example.com et example.de

Je voudrais rediriger de example.com à example.de/en

Je voulais utiliser un enregistrement A pour qu'exemple.com pointe sur exemple.de, puis utiliser .htaccess pour rediriger les demandes provenant de example.com vers http://example.de/en, mais one.com n'a pas accepté l'adresse IP. adresse. Le support a déclaré que c’est parce que l’IP pointe sur le même serveur.

J'ai ensuite essayé un "alias Web". L'alias a fonctionné mais la règle de redirection dans mon .htaccess n'a rien fait. Je suppose que c'est parce que l'alias mappe un nom sur un autre nom au lieu d'une adresse IP.

Voici la partie pertinente de mon fichier .htaccess:

RewriteCond %{HTTP_Host} ^(www.)?example\.com$ [NC]
RewriteRule ^(.*)$ http://example.de/en/$1 [R=301,L]

L’alias Web est-il identique à un enregistrement ALIAS? Est-il vrai qu'une condition .htaccess ne fonctionne pas avec un ALIAS de cette manière?

3
gang

La question de one.com ne pas accepter la même adresse IP pour l'enregistrement A de 2 domaines me suggère que le fournisseur a une configuration légèrement étrange ou sur mesure, et cette limitation se trouve dans son panneau de configuration, et non la capacité de leur serveur à gérer 2 domaines sur une adresse IP. Je gère un grand nombre de domaines sur des adresses IP uniques sans aucun problème. Peut-être qu'en raison de la conception de leur système, vous devrez peut-être enregistrer deux comptes d'hébergement distincts pour y parvenir? Parfois, il est utile d’enregistrer et de gérer vos noms de domaine auprès d’un fournisseur différent de votre hébergement Web. Des fournisseurs de noms de domaine décents vous donneront toutes les options pour les enregistrements DNS.

Les alias Web, les domaines garés, les domaines complémentaires, etc. ne redirigent normalement pas les demandes HTTP, mais constituent simplement des configurations identifiant le serveur auquel la demande doit être envoyée. Dites par exemple si un alias a été configuré pour example.com, "vous pouvez me trouver à la même adresse que example.de", et ceci est normalement obtenu à l'aide d'un enregistrement DNS CNAME.

Les règles . htaccess traitent les requêtes HTTP entrantes et peuvent les rediriger vers une autre URL, parmi d’autres fonctionnalités.

Certaines personnes préfèrent utiliser CNAME dans la mesure du possible, alors que d'autres ont tendance à les éviter. Il y a des avantages et des inconvénients pour chaque cas, bien que ma préférence va à l’utilisation des enregistrements A car ils m’offrent une plus grande souplesse.

Une solution que vous pouvez utiliser dans cette situation pourrait être:

Configurez les paires d'enregistrement A (@, www) pour example.com et example.de afin qu'ils pointent vers l'adresse IP de votre serveur Web.

example.com      IN A  001.002.003.004
example.de       IN A  001.002.003.004
www.example.com  IN A  001.002.003.004
www.example.de   IN A  001.002.003.004

Utilisez les règles . Htaccess pour vous assurer que toutes les demandes HTTP entrantes sont 301 redirigées vers l'URL appropriée, comme requis:

# Redirect http://domain.com/* to http://www.domain.de/en/*
RewriteCond %{HTTP_Host} ^domain.([^.]+).com$ [NC]
RewriteRule (.*) http://www.%1.de/en/$1 [R=301,L)

# Redirect http://www.domain.com/* to http://www.domain.de/en/*
RewriteCond %{HTTP_Host} ^www.domain.([^.]+).com$ [NC]
RewriteRule (.*) http://www.%1.de/en/$1 [R=301,L)

# Redirect http://domain.de/* to http://www.domain.de/*
RewriteCond %{HTTP_Host} ^([^.]+).de$ [NC]
RewriteRule (.*) http://www.%1.de/$1 [R=301,L)
1
richhallstoke