功能簡介
.htaccess 產生器會為最常見的需求寫出 Apache 設定檔:強制 HTTPS、在 www.example.com 和 example.com 之間擇一、永久 301 重新導向、自訂 404 頁面、Gzip 壓縮、瀏覽器快取、安全性標頭、CORS、圖片防盜連,以及單頁應用程式的備援。
每項功能都是一個開關。檔案會隨著你變更選項即時更新,每個區塊都附有簡短註解說明,依賴特定模組的規則會包在 <IfModule> 中,即使缺少某個模組,網站也能繼續運作。
使用方法
- 輸入你的 網域(www 和防盜連規則需要用到)。
- 開啟你需要的功能。強制 HTTPS 和 www 前綴 會合併成一次轉址,訪客不會被連續導向兩次。
- 以
old new成對的形式加入 301 重新導向,並用;分隔,例如/old-page /new-page; /blog https://blog.example.com。 - 複製結果,或按 下載 存成
.htaccess。 - 上傳到網站的文件根目錄,並測試幾個網址,最好先在測試伺服器上試。
範例
為 example.com 強制 HTTPS 並移除 www,會產生:
<IfModule mod_rewrite.c>
RewriteEngine On
# Force HTTPS and remove www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>
小提示
- 瀏覽器會快取 301 重新導向。測試期間請使用無痕視窗或清除快取。
- 只有在每個子網域的 HTTPS 都正常運作後,才開啟 HSTS(強制 HTTPS 時屬於安全性標頭的一部分)。
- 使用用戶端路由的 React、Vue 或 Angular 應用程式,請開啟單頁應用程式備援。
常見問題
› .htaccess 檔案要放在哪裡?
放在 Apache 伺服器上網站的文件根目錄(存放 index.html 或 index.php 的資料夾)。規則也會套用到它底下的每個資料夾。
› 在 Nginx 上能用嗎?
不行。.htaccess 只有 Apache 以及 LiteSpeed 等相容伺服器會讀取。Nginx 需要把同樣的規則寫進它自己的伺服器設定。
› 為什麼上傳後出現 500 錯誤?
通常是檔案用到的模組沒有啟用。每個區塊都包在 <IfModule> 中,但如果主機透過 AllowOverride 不允許,mod_rewrite 規則和 Options -Indexes 仍可能失敗。逐一移除各段落就能找出元兇。
› 重新導向要怎麼寫?
輸入成對的舊路徑和新網址,以分號分隔,例如 /old /new; /blog https://blog.example.com。每一對都會變成一條永久 301 重新導向。