要使用一個 WordPress 實例運行多個網域,即將多個網域與同一個 WordPress 網站關聯,有兩種選擇:
選項 1:明確定義域
我更喜歡這種方法,因為它允許您明確設定網域。您可以將以下程式碼新增至 wp-config.php 檔案中:
if ($_SERVER['HTTP_HOST'] == 'www.mywebsite.com') {
define('WP_SITEURL', 'http://www.mywebsite.com');
define('WP_HOME', 'http://www.mywebsite.com');
} else {
// this is the default that shows up if someone visits your site
define('WP_SITEURL', 'http://www.mywebsite.net');
define('WP_HOME', 'http://www.mywebsite.net');
}
選項 2:根據 If 語句動態定義域
在這種情況下,您需要將以下程式碼新增至 wp-config.php 檔案中。
if($_SERVER['HTTP_HOST'] == 'www.mywebsite.com' || $_SERVER['HTTP_host'] == 'www.mywebsite.net'){
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
}
這段程式碼的作用是更新你的 WordPress網址只要 HTTP_HOST 值是 if 條件中的選項之一,每次訪客登陸您的網站時都會動態顯示主頁選項。因此,如果我造訪 www.mywebsite.com,$_SERVER[‘HTTP_HOST’] 變數會告訴我的程式碼使用者正在造訪 http://www.mywebsite.com 並相應地更新 WordPress 選項。
您永遠不想在沒有條件語句的情況下使用以下程式碼。原因是不法分子可能會讓您的網站出現在他們的網域上。惡意行為者可以簡單地更新他們的 DNS 設定並將 A 記錄指向您的伺服器,然後當有人造訪他們的網域時您的網站就會顯示。
// do not use this unless you define what host names are allowed
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);