2009-11-27 234 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已在您的服務器上啓用。