如果有使用 VPS、獨立主機(Dedicated Servers)或雲端主機架設過網頁伺服器,一定對 Apache 不陌生,當今有很多自動化的安裝設定工具,例如 ServerPilotRunCloud 等等服務,可能比較少接觸到伺服器的設定檔,但一定會遇到相當重要的設定檔 .htaccess。簡單來說,這是 Apache 檔案目錄系統設定檔的預設檔名,比較常應用在設定網址重寫(URL Rewrite)或是一些安全權限管理,例如在「11 個強化 WordPress 網站安全的 .Htaccess 設定技巧」就有不少設定範例。

不過 .htaccess 一直是個令人相當頭痛的設定檔,特別是當使用者對它不夠熟悉,很容易因為沒寫好而造成網頁發生問題,這個檔案又不是很容易進行測試,必須要部屬本地 Apache 網頁伺服器或將它上傳到遠端伺服器才能知道結果,比較安全的作法是建立一個測試環境(Staging Site),在另一個環境上測試比較不容易發生問題而導致網站故障。

接下來要介紹的htaccess tester」是一個很方便、實用的開發者工具,可線上測試 htaccess 語法有沒有問題,依照開發者說明,這個產品在幾年前就深受喜愛,每個月都有數千次使用,對此開發團隊決定在日常維護時花一些額外時間重新設計並加入更多功能,像是 CLI 工具或是 GitHub Action 等等。

想起之前也介紹過另一個類似的工具「NGINXConfig 網頁伺服器 NGINX 設定檔產生器,依需求產生各種 conf 檔」,針對 Nginx 網頁伺服器產生設定檔(現在已經被 DigitalOcean 收購成為旗下工具),對於 Nginx 使用者來說也很有用。

htaccess tester 操作方式很簡單,設定你要帶入 .htaccess 規則的網址,再將設定值貼上,就能測試看看這段語法有沒有可能造成問題。不過 htaccess tester 依然有許多不足的部份,例如像是 %{REQUEST_FILENAME} 這樣的字串就無法正確分析,或許日後會變得越來越好用也不一定。

htaccess tester
https://htaccess.madewithlove.be/

使用教學

STEP 1

開啟 htaccess tester 網站,將你要帶入規則的網址輸入,接著把 .htaccess 設定值貼上。

下方有一個進階項目,打開後可以設定 referrer url 或 virtual host 的 ServerName,如果沒有特別需要可以不用設定這兩個選項,直接按下「Test」就會跑結果出來。

STEP 2

htaccess tester 會依照使用者貼上的規則逐條分析,看看在 URL Rewrite 結構寫法上有沒有問題。

不過結果僅供參考用,有些出現紅色錯誤訊息的部份並不會造成問題,但工具依然會給出正確和錯誤說明,以方便開發者修正問題。

前面有提到 htaccess tester 還不支援像是 %{REQUEST_FILENAME} 的字串寫法,會直接在檢測結果給出紅色訊息,不過一些比較嚴重的問題還是可以透過這個工具檢測出來。如果你需要編寫網頁伺服器的 .htaccess 設定檔,可以考慮使用這個工具稍作測試,避免在上線後發生問題。

值得一試的三個理由:

  1. 線上測試 .htaccess 語法是否有包含錯誤
  2. 設定要套用規則的網址,檢查 URL Rewrite 寫法正確性
  3. 尚不支援 %{REQUEST_FILENAME} 字串寫法,仍在持續開發更新中