2009-11-27 29 views
5

Quiero ser capaz de redirigir un dominio apuntado a mi alojamiento web a un dominio externo..htaccess redirigir a una URL externa mientras oculta la redirección

Por ejemplo, tengo esto en mi .htaccess:

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

Sin embargo, cuando visito el dominio, la dirección URL en la barra cambia mi dirección a http://myexternal.example/site.

¿Cómo puedo redireccionar sin cambiar la URL?

¿Hay alguna otra forma de evitar esto? ¿Debo usar un frame/iframe?

Respuesta

1

O un conjunto de cuadros de un solo cuadro o un marco flotante con ancho/alto establecido en 100%.

No estoy seguro de si las framsets son compatibles con las versiones más nuevas de HTML, pero los navegadores aún entienden las versiones antiguas de todos modos ... pero un iframe sencillo es fácil de todos modos.

<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

No hay navegadores nuevos, nuevas versiones de HTML. es decir, estoy bastante seguro de que no hay DTD framset para ninguna versión de XHTML. –

+0

Frameset es compatible con los navegadores más nuevos. Información de soporte de Fameset: http://reference.sitepoint.com/html/frameset –

+0

Puede ver qué DTD usar aquí: http://reference.sitepoint.com/html/elements-and-dtds Hay un especial XHTML para conjuntos de marcos: "XHTML 1.0 Frameset" –

1

Tal vez se puede lograr esto cambiando el DNS para su mydomain.net dominio para enlazar a myexternal.net. Luego, debe usar un .htaccess apropiado en su servidor externo.

8

Hace poco tiempo, pero voy a responder la pregunta de todos modos para aquellos que vienen aquí por Google (como yo). La respuesta es realmente simple:

En su htaccess, elimine la parte R = 301 (y la coma, por supuesto).

R = 301 significa que lo haces a través de un redireccionamiento 301. No desea que

0

Ninguna de las otras respuestas sugiere esto. Lo que está buscando es mod-proxy. Puede realizar un proxy de la solicitud desde su dominio A hasta domainB utilizando P marca de mod-rewrite.

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

Esto redirigirá internamente todas las solicitudes de domainA a domainB.

Asegúrese de que mod-proxy esté habilitado en su servidor.

Cuestiones relacionadas