2009-11-27 119 views
5

我希望能够将指向我的网站主机的域重定向到外部域。.htaccess重定向到外部URL,同时隐藏重定向

例如,我有这个在我的.htaccess:

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

然而,当我访问域名,在我的地址栏上的网址http://myexternal.example/site

如何在不更改URL的情况下重定向?

是否有其他解决方法?我需要使用框架/ iframe吗?

回答

1

单框架框架或宽度/高度设置为100%的iframe。

我不确定新版本的HTML是否支持framsets,但浏览器仍然能够理解旧版本......但是无论如何,单个iframe是很容易的。

<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

不是新的浏览器,新版本的HTML。即,我非常肯定,任何版本的XHTML都没有framset DTD。 – 2009-11-27 10:37:34

+0

更新的浏览器支持Frameset。 Fameset支持信息:http://reference.sitepoint.com/html/frameset – 2009-11-27 10:38:19

+0

你可以在这里看到使用哪个DTD:http://reference.sitepoint.com/html/elements-and-dtds 有一个特殊的框架集的XHTML:“XHTML 1.0框架集” – 2009-11-27 10:43:53

1

也许你可以通过改变域名mydomain.net的DNS来连接到myexternal.net。然后,您必须在外部服务器上使用适当的.htaccess

8

很久以前,但我会回答这个问题,对于那些来Google的人来说(像我一样)。答案很简单:

在你的htaccess中,删除R = 301部分(当然是逗号)。

R = 301意味着你通过301重定向。你不想那

0

没有其他答案建议这一点。寻找的是mod-proxy。您可以使用P替代请求从您的域A域B mod 012重写的标志。

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

这将内部重定向从domainA到domainB的所有请求。

确保mod-proxy已在您的服务器上启用。