一個 .htaccess 檔案 或分散式設定檔,是用於控制和管理網站設定的強大檔案。所有設定變更都是在每個目錄的基礎上進行的,以確保主伺服器設定檔不受干擾。
何時首選使用 .htaccess 檔案
無論您的目標是載入錯誤頁面還是實施密碼安全, .htaccess 都有許多用途。一些最常見的範例包括:
-
為特定 URL 或 URL 清單新增重定向。
-
在伺服器上的特定目錄上啟用密碼保護。
-
載入自訂錯誤頁面。
-
強制網站使用 HTTPS 而非 HTTP。
-
封鎖特定的 IP 或網域。
在本指南中,我們將引導您完成以下步驟:啟用、建立和使用 .htaccess 檔案.
先決條件
要進行本教學,您必須具備以下條件:
-
最新版本的 Ubuntu 已安裝 在您的系統上。
-
Apache 網頁伺服器 必須安裝在您的 Ubuntu 伺服器上。
-
已設定 Apache 虛擬主機 針對您的網域。
-
系統使用者必須擁有 sudo 權限.
-
使用 SSL 保護的虛擬主機。
-
請遵循 在 Ubuntu 18.04 上使用 Let’s Encrypt 保護 Apache (如果您使用自訂網域設定並保護 Apache)。
-
或者,您可以 在 Ubuntu 20.04 中為 Apache 建立自我簽署的 SSL 憑證 (如果您打算將 Apache 用於測試需求)。
-
|
注意: 線上有許多網域供應商,您可以考慮購買自訂網域。Namecheap, Freenom、以及 Bluehost 等,都以其卓越的服務而聞名。 |
完成初始設定後,請以 sudo 使用者登入您的伺服器,然後我們就開始吧。
步驟 1 — 啟用 .htaccess 檔案
預設情況下, .htaccess 檔案是停用的。我們需要先變更 Apache 設定並啟用 .htaccess 檔案。
開啟 apache2/sites-available/your_domain.conf 虛擬主機檔案,使用 nano 或任何偏好的文字編輯器:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
假設您已準備好 Apache 網頁伺服器 指南中討論的設定,您將會看到以下設定詳細資訊:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
接下來,請將以下 Directory 內容包含在 VirtualHost 區塊中:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
在上述程式碼區塊中, AllowOverride All 位於 Directory 區段底下是最重要的一行。此區段啟用了 .htaccess 檔案的使用。
之後,儲存您的工作並關閉檔案。如果您使用的是 nano 文字編輯器,請使用快速鍵 CTRL + X, Y,以及 ENTER 來關閉檔案。
在重新啟動網頁伺服器之前檢查設定:
|
1 |
$ sudo apache2ctl configtest |
如果一切就緒,您將會看到 Syntax OK 作為輸出。現在,重新啟動伺服器以套用您的密碼原則:
|
1 |
$ sudo systemctl restart apache2 |
一旦 .htaccess 檔案設定啟用後,就可以建立新檔案了。
步驟 2 — 建立 .htaccess 檔案
建立 .htaccess 檔案非常簡單。您必須導覽至網頁根目錄(即來源目錄)以尋找 .htaccess 檔案,以確保設定變更正確執行。
|
注意:尋找 .htaccess 檔案時請務必小心。設定中的微小錯誤可能會對該目錄及其子目錄產生不良影響。例如,如果您的目標是在同一個 Apache 伺服器上運行多個網站,請將您的 .htaccess 檔案放置在與該網站對應的網頁根目錄中。 |
如果您已完成上述的先決條件,您將會在網頁 root 目錄位於 /var/www/my_domain/.htaccess。接下來,為您的網站建立一個 .htaccess 檔案,使用:
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
一旦我們準備好 .htaccess 檔案,讓我們來看看它的一些使用案例。
步驟 3 — .htaccess 檔案的常見用途

在您的網站上使用 .htaccess 頁面會帶來許多好處。讓我們詳細討論每一個:
-
重新導向 URL
URL 重新導向(也稱為 URL 轉址)是一種網頁伺服器功能,用於將網域的訪客重新導向到另一個 URL。您可以使用 .htaccess 來滿足您的 URL 重新導向需求。在您的 .htaccess 檔案中加入以下內容,以將來源 URL 對應到目標 URL:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
建立自訂錯誤頁面
使用 .htaccess 檔案的一個好處是建立自訂錯誤頁面。通常,當使用者遇到網站上不存在的頁面時,螢幕上會彈出錯誤訊息。一些常見的 HTTP 錯誤代碼 包括:
-
400 Bad Request
-
401 Unauthorization
-
403 Forbidden
-
404 Not Found
-
500 Internal Server Error
-
502 Bad Gateway
-
503 Service Unavailable
與預設的伺服器頁面錯誤「Page Not Found」不同,您可以利用 .htaccess 檔案來為您的使用者提供更佳、更友善的瀏覽體驗。
-
設定安全驗證
使用 .htaccess 檔案,您也可以設定安全驗證。為此,您需要建立一個 .htpasswd 檔案來驗證使用者。
使用 htpasswd 指令來建立密碼檔案以確保安全。Apache 將使用此密碼檔案來驗證已核准的使用者。導覽至 /etc/apache2 目錄並建立一個名為 .htpasswd.
若要建立所需的 .htpasswd 檔案,請使用 -c 選項(首次使用此密碼安全公用程式時)。接下來,在命令末尾指定使用者名稱,以在檔案中列出新條目。之後,替換使用者名稱 nick(本教學中使用)為您的使用者名稱:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
接下來,系統會要求您提供並驗證該使用者’的密碼。
繼續閱讀 本教學 以深入了解如何在 Ubuntu 20.04 上使用 Apache 設定和配置密碼驗證。
-
新增 MIME 類型
使用 多用途網際網路郵件擴展協定 (MIME) 類型,可以毫不費力地對網際網路上使用的檔案進行分類。在某些網站無法傳送特定檔案的情況下,新增副檔名即可解決問題。請使用以下程式碼將多用途網際網路郵件擴展協定 (MIME) 類型新增至您 Apache 伺服器中的 .htaccess 檔案:
|
1 |
AddType audio/mp4a-latm .m4a |
|
注意:在我們的指南中,我們使用了一個音訊檔案 MIME 類型。請將該應用程式和副檔名替換為您的目標 MIME 類型。此外,請確保虛擬主機配置和 .htaccess 檔案的所在目錄能夠使用 AddType 指令。否則,您將會收到 500 Internal Server Error。 |
-
伺服器端嵌入 (SSI)
SSI 是向 HTML 頁面提供動態內容的指令。它用於使用某些特定資料更新大量頁面,而無需明確更新每個頁面。
在 HTML 檔案中,伺服器端嵌入 (SSI) 預設是停用的。請將以下程式碼新增至您的 .htaccess 檔案以啟用 SSI:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
上述行首先驗證 .shtml 檔案。然後將確認傳送至 .htaccess 檔案,同時允許伺服器解析所有 .shtml 檔案。
或者,您可以使用 XBitHack 來解析多個 .html 內容,而不需要逐一重新命名 .shtml 副檔名。將以下行新增至 .htaccess 檔案以使用 XbitHAck 並要求 Apache 檢查所有 .html 檔案:
|
1 |
XBitHack on |
接下來,您需要變更權限以傳遞頁面使用 XBitHack 的資格。請使用以下 chmod 命令來執行此操作:
|
1 |
$ chmod +x pagename.html |
-
管理 IP 地址
有時,出於安全目的,您可能希望封鎖某個 IP 或某個 IP 地址範圍存取您的網站。請將以下程式碼行插入您的 .htaccess 檔案以限制目標 IP:
|
1 |
Order Deny, Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) |
使用個別行來封鎖多個 IP:
|
1 |
Order Deny Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) Deny from B.B.B.B (where B.B.B.B is a specific IPv4 Address) |
此外,您可以封鎖特定網域存取您的網站。透過將以下程式碼行新增至 .htaccess 檔案來限制特定網域:
Order Deny, Allow Deny from www.blockdomain.com (其中 www.blockdomain.com 是特定的網域)
使用 .htaccess 的警訊
新增
.htaccess 檔案無疑是配置網站並使其對使用者友善的明智之舉。然而,對配置設定進行的任何修改都會伴隨其他代價。讓我們來看看一些不應使用
.htaccess 檔案的令人信服的理由:
i. 效能損失:每當伺服器掃描頁面目錄及其 .htaccess 檔案時,頁面就會載入。因此,速度和效能損失成為首要考量。
ii. 安全性:存取 .htaccess 檔案可提供對伺服器配置的完全控制。這意味著任何未經授權的使用者只要取得 .htaccess 存取 .htaccess 檔案,這進而會導致潛在的 安全風險.
iii. 可存取性: .htaccess 檔案必須極其小心謹慎地處理。如果 中有任何錯誤.htaccess 檔案,它可能會導致整個網站癱瘓。
結論
在本指南中,我們全面了解了如何啟用、建立和使用 .htaccess 檔案。我們討論了何時以及在何處必須使用 .htaccess 檔案。利用 .htaccess 檔案來保護您的網站並防止其受到攻擊。然而,使用此設定檔有幾個不容忽視的缺點。簡而言之,請使用 .htaccess 檔案,具體取決於您伺服器’的使用情況和使用者’的存取需求。
此外,您還可以在 我們的 部落格上找到其他網路教學:
留言
目前尚無留言。成為第一個留言的人吧。