2011-04-19 47 views
1

我知道問題似乎沒有什麼問題,但我找不到更好的方法來問。我可以用htaccess mod_rewrite發佈另一個網站的圖像嗎?

我有幾個網站,並有很多圖像是常見的。所以我決定從一個來源發佈公用文件,而不是使用更多的磁盤空間。但我也不希望訪問者知道它,並希望顯示從自己的域發佈的所有內容。

我可以從http://domain2.com/image.jpg請求http://domain1.com/image.jpg嗎?我嘗試了一些組合,但不能成功!

謝謝!

+0

呃,爲什麼用戶不可能看到它?靜態內容服務器或CDN是絕對正常的 - 無論如何,你可以在你的服務器之間建立一個文件系統掛載,或者代理它 – Hannes 2011-04-19 11:59:12

+0

我不希望關係公開,這就是爲什麼。感謝您的建議。 – Kemal 2011-04-19 12:01:57

回答

1

如果資源是在同一個地方,你可以輕鬆地配置您的Web服務器從不同的位置服務,例如,Apache的虛擬主機配置想是這樣的:基於

<VirtualHost *:80> 
    DocumentRoot /var/path/to/images 
    ServerName domain1.com 
    ServerAlias domain2.com 
</VirtualHost> 

更新在附加信息

如果您想要從domain1.com/imagesdomain2.com/images供應圖像,您可以通過兩種方式。

1)朝向相同的圖像文件夾的別名創建兩個虛擬主機:

<VirtualHost *:80> 
    DocumentRoot /var/path/to/domain1.com/files 
    ServerName domain1.com 
    Alias /images/ /var/path/to/images 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /var/path/to/domain2.com/files 
    ServerName domain2.com 
    Alias /images/ /var/path/to/images 
</VirtualHost> 

2)創建一個符號鏈接,例如:

$ LN -s /無功/ path/to/images /var/path/to/domain1.com/files

$ ln -s/var/path/to/images /var/path/to/domain2.com/files

您正在映射上述兩種情況下的相同位置,它只是一種不同的方法。

+0

如果目錄不同,該怎麼辦?例如,我可以通過http://www.domain2.com/image.jpg獲取http://www.domain2.com/images/image.jpg – Kemal 2011-04-19 11:23:33

+0

不確定我瞭解,您希望他們可以通過這兩個網址或僅訪問一個網址? – 2011-04-19 11:24:25

+0

它們應該可以從所有域訪問,但如果沒有其他解決方案,我可以從單獨的域中提供所有靜態內容。 – Kemal 2011-04-19 11:26:48

0

我會嘗試將圖像請求路由到一個php文件,該文件知道如何將請求映射到正確的url,然後發送正確的http頭幷包含圖像。

+0

您是否建議使用file_get_contents讀取圖像並使用圖像標題進行回顯? – Kemal 2011-04-19 11:19:25

+0

正確(如果DavidKuridža解決方案對您不可行)。您可以添加某種文件緩存來減少跨域流量。 – Yoshi 2011-04-19 11:21:30

+1

儘管此解決方案有效,但會造成額外的過載。除非你解決一個特定的問題,否則我不會推薦使用它。 – 2011-04-19 11:23:31

0

假設domain1.com和domain2.com在同一個本地網絡上,而不是使用mod-rewrite,我會建議創建符號鏈接到共享圖像文件夾,以便它們可以在每個站點中訪問如果他們是本地目錄。你需要在你的htaccess文件中啓用符號鏈接才能正常工作,但與使用mod-rewrite相比,這樣做要麻煩很多。

如果他們不在同一個網絡上,那麼在另一個域中使用301重定向到同一文件名的mod重寫應該能夠做到這一點。

另一件值得一提的事情是,通常從第二個域名提供圖像可能是一種很好的做法。例如,如果你去雅虎,你會發現他們的圖片是從yimg.com的子域名中提供的,即使你已經瀏覽了yahoo.com。由於瀏覽器和Web服務器對可從同一域下載的文件數量有限制,所以這對於性能調整站點是一種很好的做法,因此在多個域之間的單個頁面上拆分請求可以讓更多文件同時被提供並減少每臺服務器的負載。因此,您最好的選擇可能是將圖像放置在一箇中心位置,在這些位置可以在自己的域名下爲所有域名提供服務。

+0

感謝您的建議Spudley。現在域名在同一網絡上,但如果我能做到這一點,我打算將靜態內容移動到更便宜的主機上。這將像你的第三段。謝謝。 – Kemal 2011-04-19 11:59:58

相關問題