運用 $_SERVER 與 header() 實現多域名分流

當多個域名共用一個虛擬主機時,可在根目錄的 index.php 檔案中使用以下 PHP 代碼,將不同的域名分流到不同的子目錄中,以實現多個獨立並存的網站:

 

<?php
// 若訪客輸入 domain_a
if (stristr($_SERVER['HTTP_HOST'], "domain_a(without_www)") == true) { 
    header("Location:https://" . $_SERVER['HTTP_HOST'] . "/subdirectory_a/"); 
    exit; 
} 
// 若訪客輸入 domain_b
if (stristr($_SERVER['HTTP_HOST'], "domain_b(without_www)") == true) { 
    header("Location:https://" . $_SERVER['HTTP_HOST'] . "/subdirectory_b/"); 
    exit; 
}
?>

 

1. 判別訪客輸入的域名

使用 $_SERVER['HTTP_HOST'] 讀取訪客輸入的域名,再以函數 stristr() 查找字符串中是否出現 "domain_a" 或特定關鍵字。

注意,在函數 stristr() 中輸入的域名,不要冠上 www。例如輸入 "ahao.studio",這樣 ahao.studiowww.ahao.studio 兩者才都能被搜索得到。

 

2. 依域名轉址到子目錄

前述判斷成立後,便可以使用函數 header("Location:https://" . $_SERVER['HTTP_HOST'] . "subdirectory_a/") 轉址到相應的子目錄,或其它任意一個網址。

 

相關文章

0

loader