文章目錄
想要大量管理HestiaCP子網域的.htaccess檔?本教學教你最簡單的方法,全自動加入不同規則,提升網站管理效率,適合站長必學! 🚀
網站重定向是SEO優化和流量管理的重要手段,但是,手動為每個子網域配置.htaccess文件無疑是一個巨大的工程。那麼,有沒有辦法一次批量配置?當然有!
現在,我們就來聊聊如何在HestiaCP面板下,批量為子網域的public_html目錄分別生成.htaccess文件,並寫入不同的重定向規則。

為什麼要批量生成.htaccess檔案?
如果你有大量的子域名,並希望每個子域名都跳到特定的目錄或URL,手動配置每個.htaccess文件顯然是不切實際的。
例如,你的主網域是 chenweiliang.com,你的子網域是 af.chenweiliang.com,ar.chenweiliang.com等,你希望訪問 af.chenweiliang.com 的用戶跳到 www.chenweiliang.com/af/,而訪問 ar.chenweiliang.com 的用戶跳到 www.chenweiliang.com/ar/。
那麼,我們可以用一個Bash 腳本來一次完成這個工作。
HestiaCP批量產生.htaccess檔案的步驟
1. 準備工作
在開始之前,你需要確認以下資訊:
- HestiaCP用戶名(例如
youruser) - 主域名(例如
chenweiliang.com) - 子網域目錄結構(所有子網域的
public_html目錄路徑形如/home/youruser/web/子域名.chenweiliang.com/public_html/) - 伺服器支援Bash腳本執行
2. 編寫腳本
建立一個名為 create_htaccess.sh 的文件,並貼上以下腳本內容:
#!/bin/bash
# 设置HestiaCP用户名和主域名
USER="youruser"
DOMAIN="chenweiliang.com"
# 子域名前缀列表
SUBDOMAINS="af ar bg de en es fr it ja ko ru th vi zh-TW"
# 遍历子域名前缀
for SUB in $SUBDOMAINS
do
FULL_DOMAIN="$SUB.$DOMAIN"
HTACCESS_PATH="/home/$USER/web/$FULL_DOMAIN/public_html/.htaccess"
echo "正在为 $FULL_DOMAIN 生成 .htaccess 文件..."
# 写入 .htaccess 文件内容
echo "RewriteEngine on" > "$HTACCESS_PATH"
echo "RewriteCond %{HTTP_HOST} ^$FULL_DOMAIN$ [NC]" >> "$HTACCESS_PATH"
echo "RewriteRule ^(.*)$ http://www.$DOMAIN/$SUB/$1 [L,R=301]" >> "$HTACCESS_PATH"
echo "$FULL_DOMAIN 的 .htaccess 文件已创建!"
done
echo "所有子域名的 .htaccess 文件均已生成!"
3. 賦予執行權限並執行腳本
在終端機執行以下命令:
chmod +x create_htaccess.sh
./create_htaccess.sh
運行完成後,你會看到每個子網域對應的 .htaccess 文件都已產生。
腳本解析
1. 變數定義
USER:HestiaCP的用戶名DOMAIN:主域名SUBDOMAINS:子網域前綴列表
2. 遍歷子網域並建立.htaccess
for SUB in $SUBDOMAINS:循環遍歷子網域前綴FULL_DOMAIN="$SUB.$DOMAIN":拼接完整子域名HTACCESS_PATH="/home/$USER/web/$FULL_DOMAIN/public_html/.htaccess":定義.htaccess文件的存放路徑echo "RewriteEngine on" > "$HTACCESS_PATH":啟用RewriteEngineecho "RewriteCond %{HTTP_HOST} ^$FULL_DOMAIN$ [NC]" >> "$HTACCESS_PATH":匹配子域名echo "RewriteRule ^(.*)$ http://www.$DOMAIN/$SUB/$1 [L,R=301]" >> "$HTACCESS_PATH":執行301重定向
3. 腳本執行結果
運行成功後,每個子域名的 public_html 目錄下都會產生一個 .htaccess 文件,文件內容如下(以 af.chenweiliang.com 為例):
RewriteEngine on
RewriteCond %{HTTP_HOST} ^af.chenweiliang.com$ [NC]
RewriteRule ^(.*)$ http://www.chenweiliang.com/af/$1 [L,R=301]
總結
這篇文章介紹如何使用Bash腳本,在HestiaCP中批量為子網域配置 .htaccess 文件,實現自動重定向。
透過腳本,我們可以:
- 避免手動操作的繁瑣,提升效率
- 減少人為錯誤,保證規則一致性
- 快速適配多個子域名,輕鬆完成批量配置
這不僅讓你的網站管理變得更輕鬆,還能提升SEO優化效果,讓使用者存取更加順暢。
如果你也有多個子網域需要配置,不妨試試這個方法,解放雙手,事半功倍!
希望陳溈亮部落格(https://www.chenweiliang.com/) 分享的《HestiaCP批量管理子網域:自動新增.htaccess檔案最佳方法! 》,對您有幫助。
