2010-05-23 50 views
2

我有這樣的一個服務器和服務器的兩個twitter.com網站我有論壇,其路徑是像domain.com/forum1域。2服務器和2個應用程序

服務器上一個我想實現通配符dns,並在其上放置主域。但在服務器二我想保持論壇分開,我不能給子域forum.domain.com,因爲它的所有鏈接已經放入搜索引擎並鏈接回domain.com/forum。

所以我在想,我怎樣才能把域名和外卡的DNS服務器上的一個,仍然能夠給在服務器2 domain.com/forum路徑(如子文件夾)。

有什麼想法?

你覺得htaccess可以做這項工作?如果是的話,那麼如何?

+3

屬於服務器故障 – Earlz 2010-05-23 19:51:46

+0

如果遷移到ServerFault,賞金是否會隨之遷移? – 2010-08-07 15:01:00

回答

2

如果您在服務器1上使用指向server2的代理,您將增加服務器1上的負載,因爲所有通信都將通過它進行路由。此外,如果服務器1停機,則任何人都無法到達服務器2。當然,雖然這是可能的,但是這些事情都是要考慮的。

無論如何,我建議設置服務器2的supdomain,如forum.domain.com,並在服務器1上設置301重定向從domain.com/forum到forum.domain.com使用來自htaccess的mod_rewrite。使用這種技術,你甚至可以將呼叫重定向到服務器2上相應頁面的特定鏈接。搜索引擎將跟隨301並且他們最終將更新索引。

1

如果你有兩臺服務器,你沒有多少選擇,只能使用重定向(最好是301永久重定向)將用戶從domain.com/forum移動到forum.domain.com

唯一的方法是在這兩個服務器前面放置一個反向代理服務器,它讀取URL並在內部將查詢指向正確的服務器,但這是一個額外的硬件。

+0

它可以完成從htaccess的權利? – Basit 2010-05-23 23:07:24

3

您可以使用htaccess以及mod_rewrite的如此domain.com/forum實際上是從forum.domain.com顯示頁面。

也許是這樣的:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule domain.com/forum/(.+) forum.domain.com/$1 
2

可以使用301重定向,以確保搜索引擎更新它們的索引與新的網址,像這樣:

RewriteRule domain.com/forum/(.*) http://forum.domain.com/$1 [R=301,L] 
3

簡單 - 使用代理!如果你喜歡apache,你會喜歡apache mod_proxy來達到你的目的。

<VirtualHost *:80> 
    ServerName maindomain.com 
    ServerAlias *.maindomain.com 

    # insert document root and general settings for this domain here 
    # ... 

    ProxyPass /forum http://forumdomain.com 
    ProxyPassReverse /forum http://forumdomain.com 
    ProxyPassReverseCookieDomain forumdomain.com maindomain.com 
</VirtualHost> 

該配置使得阿帕奇做一個HTTP請求到您的內部結構域(forumdomain.com),而不notifiying內部位置的用戶的瀏覽器。您的論壇將可在http://*.yourdomain.com/forum上訪問。論壇的Cookies和頭文件將被重寫,搜索引擎將不會注意到您的後端服務器。

您可以在http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

閱讀更多關於它,你應該需要重寫參考罪您的HTML(HREF,SRC ......),你可能會在「mod_proxy_html」谷歌。

像這樣的解決方案當然可以與其他智能proxyservers像魷魚建設也是如此。您可以使用它將任何來自「後端服務器」的內容映射到您的公共域。 確保路由是確定或建立一個主機條目內部域(forumdomain)與因特網IP-addresse 192.168 ...

享受你的網站,並給予反饋如何計算出:)

PS :一個「重寫規則」指令有可能做同樣的事情對你,但除非你指定「P」,foricng它做一個內部的代理請求rdirect將是由客戶端可見(並執行)。如果可用,我寧願mod_proxy,因爲它更通用,並允許更多的配置。

相關問題