2009-11-27 12 views
5

Desidero poter reindirizzare un dominio indirizzato al mio webhosting a un dominio esterno..htaccess reindirizza all'URL esterno mentre nasconde il reindirizzamento

Per esempio, io ho questo nel mio .htaccess:

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

Tuttavia, quando visito il dominio, l'URL nel mio discorso cambia a barre per http://myexternal.example/site.

Come posso reindirizzare senza modificare l'URL?

C'è un altro modo per aggirare questo? Devo usare un frame/iframe?

risposta

1

Un frame frame singolo o un iframe con larghezza/altezza impostato su 100%.

Non sono sicuro che i framset siano supportati nelle versioni più recenti di HTML, ma i browser continuano a comprendere comunque le vecchie versioni ... ma un iframe singolo è comunque semplice.

<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

Non nuovi browser, nuove versioni di HTML. cioè, sono abbastanza sicuro che non ci sia DTD framset per nessuna versione di XHTML. –

+0

Il set di frame è supportato dai nuovi browser. Informazioni sul supporto Fameset: http://reference.sitepoint.com/html/frameset –

+0

Puoi vedere quale DTD usare qui: http://reference.sitepoint.com/html/elements-and-dtds C'è uno speciale XHTML per i set di cornici: "XHTML 1.0 Frameset" –

1

Forse è possibile ottenere questo modificando il DNS per il dominio mydomain.net per il collegamento a myexternal.net. Quindi, è necessario utilizzare un appropriato .htaccess sul server esterno.

8

Un po 'di tempo fa, ma risponderò comunque alla domanda per coloro che vengono da Google (come me). La risposta è molto semplice:

Nel tuo htaccess, rimuovere la parte R = 301 (e la virgola, naturalmente).

R = 301 significa che lo si fa tramite un reindirizzamento 301. Non vuoi che sia

0

Nessuna delle altre risposte ha suggerito questo. Che cosa sta cercando è mod-proxy. È possibile inoltrare la richiesta dal dominio A a dominioB utilizzando il flag P di riscrittura mod.

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

Questo reindirizzerà internamente tutte le richieste da domainA a domainB.

Accertarsi che il mod-proxy sia abilitato sul server.

Problemi correlati