這是一個標準的 Apache 設定需求。為了達成你的目標,我們需要在 <VirtualHost> 層級限制主機名稱(ServerName),並在 <Directory> 層級限制存取來源。
你可以將設定修改如下:
Apache
<VirtualHost *:80>
# 1. 只接受特定的網域名稱
ServerName note.findrichard.com
DocumentRoot /var/www/wordpress
<Directory /var/www/wordpress>
Options FollowSymLinks
# 建議將 AllowOverride 設為 All 以確保 WordPress 的 .htaccess 正常運作
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
# 2. 存取控制:只允許來自本機與代理伺服器
<RequireAny>
Require ip 192.168.116.73
Require local
</RequireAny>
</Directory>
<Directory /var/www/wordpress/wp-content>
Options FollowSymLinks
<RequireAny>
Require ip 192.168.116.73
Require local
</RequireAny>
</Directory>
</VirtualHost>
關鍵修改說明:
ServerName note.findrichard.com: 這確保了當請求進入伺服器時,Apache 只會將針對該網域的請求交給這個 VirtualHost 處理。如果有人嘗試用 IP 直接存取,且這是唯一的設定檔,他們可能會看到錯誤或預設頁面(取決於你的預設主機設定)。<RequireAny>區塊:Require ip 192.168.116.73: 明確允許你的代理伺服器。Require local: 允許伺服器自身存取(這對某些內部 cron job 或健康檢查很有幫助)。
- 安全性提醒: 如果你的 WordPress 位於代理伺服器(Proxy)後方,建議安裝並啟用
mod_remoteip模組,這樣 WordPress 的日誌才能記錄到真實訪客的 IP,而不是永遠只顯示192.168.116.73。
修改後的步驟:
執行 sudo systemctl restart apache2 (或 httpd) 套用變更。
儲存設定檔。
執行 sudo apachectl configtest 檢查語法。

發佈留言