2009-11-27 15 views
5

Ich möchte in der Lage sein, eine Domain, die auf meine Webhosting auf eine externe Domain verwiesen..htaccess Redirect auf externe URL beim Verstecken Umleitung

Zum Beispiel, ich habe dies in meinem .htaccess:

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

Allerdings, wenn ich besuchen Sie die Domain, die URL in meiner Adressleiste Änderungen an http://myexternal.example/site.

Wie kann ich umleiten, ohne die URL zu ändern?

Gibt es einen anderen Weg? Muss ich einen Frame/Iframe verwenden?

Antwort

1

Entweder ein einzelnes Frame-Frameset oder ein Iframe mit einer Breite/Höhe von 100%.

Ich bin mir nicht sicher, ob Framsets in neueren Versionen von HTML unterstützt werden, aber Browser verstehen immer noch alte Versionen ... aber ein einzelner iframe ist sowieso einfach.

<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

Nicht neue Browser, neue HTML-Versionen. Ich bin mir ziemlich sicher, dass es keine framset DTD für irgendeine Version von XHTML gibt. –

+0

Frameset wird von neueren Browsern unterstützt. Fameset Unterstützung info: http://reference.sitepoint.com/html/frameset –

+0

Sie können sehen, welche DTD hier zu verwenden: http://reference.sitepoint.com/html/elements-and-dtds Es gibt eine spezielle XHTML für Framesets: "XHTML 1.0 Frameset" –

1

Vielleicht können Sie dies erreichen, indem Sie den DNS für Ihre Domain mydomain.net ändern, um auf myexternal.net zu verlinken. Dann müssen Sie einen geeigneten .htaccess auf Ihrem externen Server verwenden.

8

Vor langer Zeit, aber ich beantworte die Frage trotzdem für diejenigen, die von Google kommen (wie ich). Die Antwort ist wirklich einfach:

In Ihrem htaccess, entfernen Sie den R = 301 Teil (und das Komma natürlich).

R = 301 bedeutet, dass Sie es über eine 301 Redirect tun. Das wollen Sie nicht

0

Keine der anderen Antworten schlug dies vor. Was OP sucht, ist mod-proxy. Sie können die Anfrage von Ihrem DomainA an DomainB mit P Flag of mod-rewrite Proxy.

Dies leitet intern alle Anfragen von DomainA zu DomainB um.

Stellen Sie sicher, dass mod-proxy auf Ihrem Server aktiviert ist.