2012-05-29 43 views
8

比方說,我有一個可以被多個域訪問的網站,例如domain1.comdomain2.com如何在HTML中引用相對子域?

如果我有一個相對鏈接,如href="/wiki",那麼無論我通過哪個域名訪問該網站,該鏈接都會帶我到正確的位置。

讓我們說,而不是我想用wiki.domain1.comwiki.domain2.com,有沒有什麼辦法可以使這個相對於域名的鏈接?

如果沒有,當多個域指向同一個服務器時,是否有一種優雅的方式來處理鏈接,如上面的維基鏈接?

+1

FYI以正斜槓任何一個環節是絕對的,而不是相對的。 –

+0

使用JavaScript,您可以輕鬆更改客戶端的所有鏈接,以插入「wiki」。如果他們發送到「http://domain*.com/wiki」。 –

回答

8

不可以。您必須提供整個域名。要鏈接從domain1.comwiki.domain1.com,鏈接必須看起來像href="http://wiki.domain1.com"

+0

謝謝,當多個域名引用同一個服務器時,有沒有一種優雅的方式來處理這個問題? (添加這個問題)。 – Alex

+0

您通常可以使用'$ _SERVER ['HTTP_HOST']'來計算當前的域名。寫下你的劇本...... – deceze

4

相對路徑是不可能的,因爲子域實際上是一個完全不同的域。

如果你真的不能用絕對URL,但是可以使用PHP,你可以試試這個代理腳本:

<?php 

if(!isset($_GET['url'])) { 
    die('Missing URL!'); 
} 

$subdomain_url = 'http://subdomain.example.com/'; 
$file_path = $_GET['url']; 

$file_url = $subdomain_url . $file_path; 

$mime = finfo_open(FILEINFO_MIME, $file_url); 


header('Content-Type: ' . $mime); 
header('Content-Transfer-Encoding: Binary'); 
header('Content-disposition: inline; filename="' . basename($file_path) . '"'); 

readfile($file_url); 

保存到一個文件,如: imgproxy.php,然後你可以這樣對其他子域鏈接圖片:

<img src="imgproxy.php?url=images/logo.png">