2009-11-27 5 views
5

Je souhaite être en mesure de rediriger un domaine pointé vers mon hébergement vers un domaine externe..htaccess rediriger vers l'URL externe tout en masquant la redirection

Par exemple, j'ai dans mon .htaccess:

RewriteCond %{HTTP:Host} ^(?:www\.)?mydomain\.example$ 
RewriteRule ^(.*)$ http://myexternal.example/site [R=301,NC] 

Cependant, quand je visite le domaine, l'URL dans la barre d'adresse mes changements à http://myexternal.example/site.

Comment puis-je rediriger sans modifier l'URL?

Existe-t-il une autre solution? Dois-je utiliser un cadre/iframe?

Répondre

1

Soit un jeu de cadres à cadre unique, soit un cadre avec une largeur/hauteur définie sur 100%. Je ne suis pas sûr que les framsets soient supportés dans les nouvelles versions de HTML, mais les navigateurs comprennent toujours les anciennes versions de toute façon ... mais un iframe unique est facile de toute façon.

<html> 
<head> 
<title>My Site</title> 
<style> 
body { 
    margin: 0; 
    padding: 0; 
} 
body, iframe { 
    width: 100%; 
    height: 100%; 
} 
iframe { 
    border: 0; 
} 
</style> 
</head> 

<body> 
<iframe src="http://example.com" /> 
</body> 
</html> 
+0

Nouveaux navigateurs, nouvelles versions de HTML. Par exemple, je suis à peu près sûr qu'il n'y a pas de DTD pour toute version de XHTML. –

+0

Le jeu de cadres est pris en charge par les nouveaux navigateurs. Info sur le support du jeu de paramètres: http://reference.sitepoint.com/html/frameset –

+0

Vous pouvez voir quelle DTD utiliser ici: http://reference.sitepoint.com/html/elements-and-dtds XHTML pour les framesets: "XHTML 1.0 Frameset" –

1

Peut-être que vous pouvez réaliser ceci en changeant le DNS pour votre domaine mydomain.net pour lier à myexternal.net. Ensuite, vous devez utiliser un .htaccess approprié sur votre serveur externe.

8

Bit il y a longtemps, mais je vais répondre à la question de toute façon pour ceux qui viennent ici par Google (comme moi). La réponse est vraiment simple:

Dans votre htaccess, supprimez la partie R = 301 (et la virgule bien sûr).

R = 301 signifie que vous le faites via une redirection 301. Vous ne voulez pas cela

0

Aucune des autres réponses n'a suggéré cela. Ce que op recherche est mod-proxy. Vous pouvez proxy la demande de votre domainA à domainB en utilisant P drapeau de mod-rewrite.

RewriteRule ^(.*)$ http://domainB.com/$1 [P] 

Ceci redirigera en interne toutes les requêtes de domainA vers domainB.

Assurez-vous que mod-proxy est activé sur votre serveur.