.htaccess 檔案是 Apache 網頁伺服器的設定檔,可讓您在目錄層級控制網站行為。它負責處理 URL 重新導向、強制 HTTPS、目錄隱私與自訂錯誤頁面等工作——完全不需要存取主伺服器設定。對大多數網站擁有者而言,建立一個安全的 .htaccess 檔案代表確保 HTTPS 正規化(強制所有流量導向網站的安全版本)、停用目錄列表(防止未授權存取檔案),以及設定自訂 404 頁面(讓訪客看到品牌化的錯誤頁面,而非一般的伺服器訊息)。手動撰寫這些規則容易出錯,特別是當您不熟悉 Apache 語法或主機環境的特定需求時。這正是 Htaccess Generator 工具派上用場的地方:它能建立一個針對 Apache 2.4 量身打造、精簡且安全的 .htaccess 檔案,提供 HTTPS 正規化、停用目錄列表與本機自訂 404 路徑等選項——完全不需要您撰寫任何一行程式碼。

how to create .htaccess
how to create .htaccess

為何要使用 .htaccess 檔案?

.htaccess 檔案對於控制網站在伺服器層級的行為至關重要。若沒有此檔案,網站可能依賴預設的伺服器設定,這可能導致安全漏洞、使用者體驗不佳或 SEO 問題。以下是使用 .htaccess 檔案的主要原因:

  • HTTPS 正規化:確保所有訪客透過 HTTPS 存取您的網站,這對安全性與 SEO 至關重要。像 Google 等搜尋引擎會優先排序安全網站,而瀏覽器會在網站未加密時警告使用者。
  • 目錄隱私:停用目錄列表,防止未授權使用者瀏覽您網站的檔案結構。這對於擁有敏感檔案或目錄的網站特別重要。
  • 自訂錯誤頁面:將一般的伺服器錯誤訊息(例如預設的 404 頁面)替換為品牌化、友善使用者的頁面,讓訪客保持參與並降低跳出率。
  • URL 重新導向:雖然本工具未涵蓋,但 .htaccess 檔案也能處理重新導向(例如針對已移動頁面的 301 重新導向),這在重新架構網站時對於維持 SEO 價值至關重要。
  • 效能最佳化:某些 .htaccess 規則可啟用壓縮、快取或其他效能改善,雖然這些已超出本指南的範圍。

對大多數中小型網站而言,主要焦點在於 HTTPS 正規化、目錄隱私與自訂錯誤頁面。這三項功能能解決最常見的安全性與使用者體驗問題,而不會讓設定過於複雜。

Htaccess Generator 的運作方式

Htaccess Generator 工具透過自動化產生 Apache 2.4 相容規則,簡化了建立安全 .htaccess 檔案的過程。其運作方式如下:

  • 輸入您的正規網域:此工具需要您精確的正規來源(例如 https://example.com)。這能確保所有流量都被重新導向至正確、安全的網站版本。
  • 選擇選用設定:您可以啟用停用目錄列表(以防止未授權檔案存取),並指定本機自訂 404 路徑(例如 /404.html)。這些選項雖為選用,但建議大多數網站啟用。
  • 產生程式碼:此工具會輸出一個精簡、安全的 .htaccess 檔案,包含您所選的規則。程式碼可直接部署,但上線前應進行檢閱與測試。
  • 與現有規則合併:若您已有 .htaccess 檔案(例如用於 WordPress 等 CMS 或驗證規則),您需要謹慎合併產生的程式碼以避免衝突。

此工具的設計宗旨是範圍明確且可稽核,僅包含您明確選擇的規則,並避免不必要的複雜性。這對於想要安全、精簡設定而無需承擔設定錯誤風險的使用者而言,是理想的選擇。

產生並部署您的 .htaccess 檔案

請依照下列步驟,使用 Htaccess Generator 工具建立並部署您的 .htaccess 檔案:

  1. 輸入您的正規網域:

    開啟 Htaccess Generator 工具。在「Canonical Origin」欄位中,輸入您網站精確的 HTTPS URL(例如 https://example.com)。這能確保所有流量都被重新導向至您網域的安全版本。請勿包含結尾斜線或子目錄。

  2. 選擇選用設定:
    • 停用目錄列表:若您希望防止未授權使用者覽網站的檔案結構,請勾選此方塊。建議大多數網站(特別是擁有敏感檔案的網站)啟用此選項。
    • 自訂 404 路徑:若您擁有自訂 404 頁面(例如 /404.html),請在此輸入其本機路徑。這會將一般的伺服器錯誤頁面替換為您的品牌化頁面。若您沒有自訂 404 頁面,請將此欄位留空。
  3. 產生 .htaccess 程式碼:

    點擊「Generate」按鈕。此工具將輸出一個精簡的 .htaccess 檔案,包含 HTTPS 正規化、(若選擇)停用目錄列表,以及(若有提供)自訂 404 路徑的規則。請將產生的整段程式碼複製到您的剪貼簿。

  4. 備份您現有的 .htaccess 檔案:

    在進行任何變更之前,請先備份您現有的 .htaccess 檔案。若您沒有此檔案,請略過此步驟。備份方式如下:

    • 透過 FTP 或主機服務商的檔案管理員存取網站的根目錄。
    • 找到 .htaccess 檔案(它可能是隱藏的;請在 FTP 用戶端或檔案管理員中啟用「顯示隱藏檔案」)。
    • 將該檔案下載至您的電腦並重新命名(例如 .htaccess-backup)以保留備份。
  5. 建立或更新您的 .htaccess 檔案:

    若您沒有 .htaccess 檔案,請在網站的根目錄(例如 public_htmlhtdocs)中建立一個。若您已有該檔案,請開啟它進行編輯。請將產生的程式碼貼到檔案的最上方。若您現有的 .htaccess 檔案包含其他規則(例如用於 WordPress 等 CMS 或驗證),請確認新規則不會與其衝突。例如:

    # Generated by Htaccess Generator
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off [OR]
        RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
        RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
    </IfModule>
    
    # Optional: Disable directory listings
    Options -Indexes
    
    # Optional: Custom 404 page
    ErrorDocument 404 /404.html
    
    # Existing CMS or authentication rules (if any)
    # ...
    
  6. 將檔案上傳至您的伺服器:

    儲存更新後的 .htaccess 檔案,並上傳至網站的根目錄。若您使用 FTP,請確認檔案是以 ASCII 模式(非二進位模式)上傳,以避免損壞。

  7. 測試設定:

    在部署至正式環境之前,請先在測試伺服器或本機環境測試 .htaccess 檔案。驗證方式如下:

    • 檢查 HTTPS 重新導向:使用 http://example.comhttp://www.example.com 造訪您的網站。瀏覽器應自動將您重新導向至 https://example.com
    • 測試目錄列表:若您啟用了停用目錄列表,請嘗試存取沒有索引檔案的目錄(例如 https://example.com/images/)。您應會看到 403 Forbidden 錯誤或自訂 404 頁面,而非檔案列表。
    • 測試 404 頁面:造訪一個不存在的 URL(例如 https://example.com/nonexistent-page)。您應會看到自訂 404 頁面,而非預設的伺服器錯誤。
    • 驗證 Apache 設定:若您的主機服務商提供檢查 Apache 設定的方式(例如透過 cPanel 或命令列工具),請使用它來確認您的 .htaccess 檔案中沒有語法錯誤。
  8. 部署至正式環境:

    一旦確認 .htaccess 檔案在測試環境中運作正常,請將其部署至您的正式網站。請監控網站是否有任何問題(例如重新導向失效、頁面遺漏),並在必要時還原至您的備份。

常見的 .htaccess 情境與解決方案

雖然 Htaccess Generator 工具涵蓋了最常見的使用情境,但您可能會遇到需要額外規則的情況。以下是一些常見的情境及其處理方式:

情境 問題 解決方案
混合 HTTP/HTTPS 內容 部分資源(圖片、腳本)透過 HTTP 載入,造成瀏覽器警告。 使用 Content-Security-Policy 標頭,或將資源 URL 更新為 HTTPS。Htaccess Generator 並未直接處理此問題,但您可以將下列內容新增至 .htaccess 檔案:
<IfModule mod_headers.c>
    Header set Content-Security-Policy "upgrade-insecure-requests"
</IfModule>
CMS 衝突(例如 WordPress) WordPress 或其他 CMS 可能會覆寫或與您的 .htaccess 規則衝突。 請將產生的規則放在 CMS 預設規則的上方。以 WordPress 為例,您的 .htaccess 檔案應如下所示:
# Generated by Htaccess Generator
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
    RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>

# WordPress default rules
# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress
子網域重新導向 您希望將子網域(例如 www.example.com)重新導向至主網域。 若您輸入的正規網域未包含 www 前綴,Htaccess Generator 會自動處理此情況。若您需要處理多個子網域,則需要手動新增額外的 RewriteCond 規則。
其他代碼的自訂錯誤頁面 您希望為 403(Forbidden)或 500(Server Error)等錯誤設定自訂頁面。 Htaccess Generator 僅支援自訂 404 頁面,但您可以手動新增其他錯誤頁面。例如:
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html
封鎖特定 IP 或機器人 您希望封鎖惡意 IP 或機器人存取您的網站。 Htaccess Generator 不包含 IP 封鎖功能,但您可以手動新增。例如,若要封鎖某個 IP:
Order Allow,Deny
Deny from 192.168.1.1
Allow from all

如需處理更進階的情境,您可能需要參主機服務商的文件或 Apache 官方的 htaccess 指南。

管理 .htaccess 檔案的最佳實務

.htaccess 檔案功能強大,但如果設定不當也可能引發問題。請遵循以下最佳實務,確保您的檔案安全、有效率且易於維護:

  • 保持精簡:只加入您需要的規則。多餘的規則可能拖慢網站速度,並增加規則衝突的風險。Htaccess Generator 工具正是為了產生精簡、安全的設定而設計。
  • 部署前先測試:在將 .htaccess 檔案部署到正式環境之前,務必先在預備伺服器或本機進行測試。這樣可以在錯誤影響您的線上網站前先攔截它們。
  • 定期備份:在進行任何變更之前,請先備份現有的 .htaccess 檔案。這樣一旦出問題,您就能迅速還原。
  • 善用註解:在 .htaccess 檔案中加入註解,說明每一條規則的作用。這能讓日後的維護和更新更加容易。例如:
    # 將所有 HTTP 流量重新導向至 HTTPS
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off [OR]
        RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
        RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
    </IfModule>
    
  • 避免重複:如果要與現有的 .htaccess 檔案合併規則,請確保不要重複相同的指令(例如,不要有多行 RewriteEngine On)。
  • 監控效能:過大的 .htaccess 檔案會拖慢網站速度,特別是當其中包含複雜的 rewrite 規則時。在進行變更後請監控網站效能,並視需要簡化檔案內容。
  • 使用版本控制:如果您管理多個網站或與他人協作,建議使用版本控制(例如 Git)來追蹤 .htaccess 檔案的變更。這樣在需要時能更輕鬆地回復到先前的版本。
  • 檢查語法錯誤:.htaccess 檔案中即使只有一個打錯的字,也可能讓您的網站掛掉。部署前請使用線上語法檢查工具,或您的主機商提供的工具來驗證檔案。

想了解更多管理 .htaccess 檔案的訣竅,請參考我們的指南:如何在 WordPress 中建立 canonical 標籤,其中涵蓋了相關的 SEO 最佳實務。

其他伺服器的 .htaccess 替代方案

雖然 .htaccess 檔案是 Apache 專用的,但其他網頁伺服器也有自己的設定方式。如果您使用的是不同的伺服器,以下是如何達到類似功能的方法:

伺服器 對等的設定檔 主要差異
Nginx nginx.conf 或伺服器區塊檔案 Nginx 並不支援 .htaccess 檔案。您需要在主要伺服器設定檔或各網站專屬的檔案中設定規則。使用我們的 Nginx Config Generator 工具,就能為靜態網站產生精簡的伺服器區塊。
IIS(Windows Server) web.config IIS 使用以 XML 為基礎的 web.config 檔案進行設定。重新導向、強制 HTTPS 和自訂錯誤頁面等規則的語法與 Apache 不同。Microsoft 提供了 IIS 設定的相關指南。
LiteSpeed .htaccess(支援有限) LiteSpeed 支援一部分 Apache 的 .htaccess 指令。不過部分規則可能無法如預期運作,因此請徹底測試。LiteSpeed 也提供自己的設定檔以進行進階設定。
Cloudflare Cloudflare Dashboard Cloudflare 可透過其儀表板處理許多類似 .htaccess 的任務(例如強制 HTTPS、重新導向)。您也可以使用 Cloudflare Workers 來執行自訂邏輯。不過,Cloudflare 無法在伺服器層級停用目錄列表或設定自訂錯誤頁面。

如果您正準備從 Apache 移轉到 Nginx,我們的 htaccess to Nginx Converter 工具可以協助將一小部分的 .htaccess 規則轉換成 Nginx 相容的語法。不過,並非所有 Apache 指令在 Nginx 中都有對等的項目,因此仍需要人工檢視。

如果您正在權衡各種選項,Convert Apache .htaccess to Nginx Rules Without Guesswork 一文對此有詳細說明。

如果您正在權衡各種選項,How to Create Meta Tags for Any HTML Page 一文對此有詳細說明。