Two Domain On One IP
我在Google Domain上註冊了兩個Domain後,想都綁同一個實體IP(Public IP),並自動導向到不同網頁(網站)。
首先從你買域名的地方上做好設置,將兩個頂級域Domain(TLD) 透過類型A 都指向該IP
將Domain綁定到該IP位置,再開始做以下步驟
環境
伺服器是用XAMPP的Apache
80 port http 虛擬主機設定
先開啟 httpd.conf (預設路徑在 C:\xampp\apache\conf)
確保這一行沒有被#註解掉
Include conf/extra/httpd-vhosts.conf
有這行代表他會去讀 httpd-vhosts.conf 的設定
接著修改 httpd-vhost.conf 檔案 (預設在 C:\xampp\apache\conf\extra)
直接在文件最底部 加上VirtualHost區塊
設定大概像這樣子
DocumentRoot 指向 網站根目錄位置
ServerName 打上頂級域名
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "C:\www\BIZ"
ServerName bizlove.net
ServerAlias bizlove.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\www"
ServerName gjlmotea.com
ServerAlias gjlmotea.com
</VirtualHost>
接著重啟Apache服務
http連線的設定就完成拉
在測試的時候因為快取的關係,多次以為是自己沒設定好,
後來用別台電腦開發現結果是OK的,建議使用網頁無痕模式開啟測比較準。
443 port https 虛擬主機設定
http弄好之後,再來要設定https
回到 httpd.conf (預設路徑在 C:\xampp\apache\conf)
確保這一行沒有被註解掉
修改 httpd-ssl.conf 檔案 (預設路徑在 C:\xampp\apache\conf\extra)
使整份文件結構看起來大概像這樣:
<VirtualHost _default_:443>
DocumentRoot "C:\www"
ServerName www.gjlmotea.com:443
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:\www\BIZ"
ServerName bizlove.net:443
</VirtualHost>
(若需要永久導向,可另外加上這一行)
<VirtualHost _default_:443>
DocumentRoot "C:\www"
ServerName www.gjlmotea.com:443
# http to https 重導向
Redirect permanent / https://www.gjlmotea.com/
</VirtualHost>
但連上也只會出現不安全網頁,
因為上面這是沒有SSL憑證的狀態
照著CertBot步驟申請憑證,有了SSL的證書後
最終整份 httpd-ssl.conf 檔案設定看起來會是這樣
<VirtualHost _default_:443>
DocumentRoot "C:\www"
ServerName www.gjlmotea.com:443
SSLEngine on
SSLCertificateFile "C:\Certbot\live\gjlmotea.com\fullchain.pem"
SSLCertificateKeyFile "C:\Certbot\live\gjlmotea.com\privkey.pem"
SSLCertificateChainFile "C:\Certbot\live\gjlmotea.com\chain.pem"
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "C:\www\BIZ"
ServerName bizlove.net:443
ServerAlias bizlove.net
SSLEngine on
SSLCertificateFile "C:\Certbot\live\bizlove.net\fullchain.pem"
SSLCertificateKeyFile "C:\Certbot\live\bizlove.net\privkey.pem"
SSLCertificateChainFile "C:\Certbot\live\bizlove.net\chain.pem"
</VirtualHost>
SubDomain 子網域、網址前綴
原本想要在設定檔中設置 multiple ServerName,但發現 ServerAlias 可以加上萬用匹配字元 *
<VirtualHost *:80>
DocumentRoot "C:\www\BIZ"
ServerName bizlove.net
ServerAlias *.bizlove.net
</VirtualHost>
接著DNS也設定
如此一來www.bizlove.net、xyz.bizlove.net便可連上同一個網域
沒有留言:
張貼留言