.htaccess 初學者指南

已發表: 2023-10-25

.htaccess-每個擁有網站的人時不時聽過的可怕字。 雖然這個名字本身看起來技術性太強,難以理解,但它是你的武器庫中的強大工具。 透過掌握 .htaccess、它的工作原理和可能的用例,您可以毫不費力地用它做很多事情。 讓我們深入了解它是什麼、如何使用它來為您帶來好處,並獲取 .htaccess 最常見用法的最有用的示例和解釋!

什麼是 .htaccess?

.htaccess 是「超文本存取」的縮寫,是一個設定文件,可以幫助您控制 Apache Web Server 軟體。 您可以建立 .htaccess 檔案並將其新增至目錄中,以便 Apache Web 伺服器會載入並稍後執行該檔案。

簡而言之,您可以使用此文件來啟用或停用 Web 伺服器必須提供的任何功能。 從基本的重定向或熱鏈結預防,掌握 .htaccess 的使用有許多好處。

.htaccess 檔案是什麼樣的?

.htaccess 檔案就是您所建立的檔案。 它可以只包含一行或多行,具體取決於文件​​的用途。 您可以在文件中寫入很多內容來執行很多操作,在閱讀時您會發現一些範例。

我已經有一個了嗎?

在大多數情況下,如果您有網站,則可能已經有 .htaccess 檔案。 您通常可以在網站的根資料夾中找到它。 只需前往包含網站所有內容的資料夾,然後尋找 Public_HTML 資料夾或名為 www 的資料夾。 如果您有多個網站的子目錄,您將在每個子目錄中找到一個。

如果您找不到它,請不要擔心。 這並不意味著您沒有它——它可能只是被隱藏了。 以點開頭的檔案通常就是這種情況,就像 .htaccess 一樣。 預設情況下,它們通常不容易被發現。

只需前往檔案總管或 FTP 用戶端,然後尋找「顯示隱藏檔案」選項即可。 不要遺漏任何選項,尤其是「首選項」、「設定」或「選項」。

我好像沒有啊

不過,不用擔心,因為您可以毫不費力地創建一個。 您需要的是一個常規的文字編輯器和一些對細節的關注。 例如,您可以使用 Microsoft WordPad 或 TextPad。 不過,棘手的部分是確保正確命名並儲存 .htaccess 檔案。

首先,您需要以正確的格式儲存它。 它應該是 ASCII 格式,因此請抵制將其儲存為 UTF-8 或任何其他格式的誘惑。

其次,確保它的名稱為.htaccess。 這聽起來很簡單,但這實際上是對細節的關注發揮作用的地方。 您要確保保留開頭的點。 下一步是確保不包含任何檔案副檔名。 將其另存為“htaccess.txt”將無法到達終點線。 添加點,然後刪除擴展名!

最後,您要將其上傳到適當的目錄。 您可以返回指南並將其保存在上述目錄之一中。 為此,您可以使用 FTP 或您熟悉的任何其他基於瀏覽器的檔案管理器。

我可以用 .htaccess 做什麼?

透過 .htaccess 和一些專業知識,您可以實現多種目標。 這裡是其中的一些:

處理錯誤

您可以使用 .htaccess 做的第一件事,也是最簡單的事情之一,是確保您的訪客看到友好的自訂錯誤訊息,而不是可怕的訊息。

您要做的是先建立一個 HTML 文件。 建議包含錯誤描述,例如 404 錯誤為“Not Found”,502 錯誤為“Bad Gateway”。 但事實是,您可以顯示任何您想要的內容。

您還應該確保正確命名它,以便知道它是哪個文件。 如果是處理404錯誤,常見的儲存方式是404.html。 您還希望將其儲存到 error_pages 目錄,該目錄應保存所有錯誤文件。

準備好後,您應該在首選編輯器中開啟 .htaccess 文件,然後輸入以下內容:

錯誤文檔 404 /error_pages/404.html

當發生 404 錯誤時,這一行將告訴您的網站伺服器顯示指定的文件。 您可以使用您想要的任何錯誤文件進一步重複此過程,以確保您的訪客不會因他們通常收到的過於簡單和通用的訊息而感到沮喪。

簡單重定向

雖然 WordPress 可能有許多外掛程式可以為您執行此操作,但您也可以使用 .htaccess 檔案重新導向訪客。 讓訪客造訪您指定的頁面而不是他們要求的頁面是另一個簡單的任務。 透過在檔案中輸入另一行,您可以將訪客重新導向到網站內的另一個位置,甚至重新導向到另一個網站。

要重定向它們,以下是您可以添加到 .htaccess 檔案中的內容的範例。 當然,您應該對其進行一些編輯以滿足您的需求。

重定向 /old_dir/ http://www.yourdomain.com/new_dir/index.html

讓我們對此進行解釋,以便您知道如何對其進行自定義,以確保您的訪客最終到達您希望他們最終到達的地方。

首先,/old_dir/ 是什麼? 它是位於您的網域下的目錄或文檔,或者更準確地說,它位於“http://www.yourdomain.com/old_dir/”。 這是您的訪客將嘗試訪問的點。 文件的其餘部分指定了它們應該結束的位置。 在這種情況下,它們最終將出現在您網站上的 /new_dir/ 的索引頁面上。

如您所看到的,與起始點不同,您希望使用者最終到達的頁面是完整的 URL。 這在重定向到另一個網域時很有幫助,因為您可以使用任何 URL 並添加它,而不是範例中的 URL。 小菜一碟,不是嗎?

密碼保護

如果您希望圍繞您的網站建立社區,那麼提供會員區域並讓訪客登入可能是一個竅門。 雖然社群對於您的行銷工作和銷售來說是一件很棒的事情,但它也可以幫助您了解您的用戶是誰,並收集有關您的客戶的急需資訊。

只要您符合 GDPR 規定,您就可以使用這個巧妙的技巧根據您收集的資訊編輯您的報價,並最終 – 賣出更多!

如何進行密碼保護?

為網站上的任何內容添加密碼是使用 .htaccess 檔案最常見的方法。 做起來也相當簡單,而且您仍然可以用密碼保護一個或幾個目錄。 這將使用戶擁有有效的用戶名和密碼來存取它,這在各種情況下都非常有用。

如果您為目錄設定了密碼保護,則登入過程將相當簡單,並且您的網頁瀏覽器會自動處理。 它將顯示為瀏覽器的彈出介面。 密碼也經過加密,因此登入憑證也將是安全的。

如果您知道要使用密碼保護哪個目錄,請繼續建立一個 .htaccess 檔案。 請記住,所有子目錄最終也將受到密碼保護! 同樣的規則也適用於此,但您可能希望包括以下內容:

AuthName“會員姓名”

AuthUserFile /路徑/到/密碼/檔案/.htpasswd

AuthType 基本

需要有效用戶

讓我們將其分解,以便您知道如何在需要時對其進行修改。 在第一行中,該 .htaccess 檔案指定您要保護的目錄的名稱。 在本例中,它是“Member's Name”目錄,但您應該修改它以適合需要密碼的目錄的名稱。

第二行指定密碼文件,或者更準確地說,伺服器可以在哪裡找到密碼文件。 第三個是您正在使用的授權類型。 在範例中,它是 basic,代表基本 HTTP 驗證。

最後一行代表登入的要求。 在此範例中,它需要有效的登入憑證。 您可以在此指定有效所需的內容,具體取決於您要使用密碼保護的內容。

密碼檔案

現在,您需要找出密碼檔案。 雖然它可以位於 Web 伺服器上的任何位置,但建議將密碼檔案位於與 .htaccess 檔案相同的目錄中。 這是因為某些伺服器需要進行此設定。 您應該在第二行中使用包含密碼檔案的目錄的完整路徑。

當然,這也意味著你必須準備好密碼檔。 在範例中,它稱為 .htpasswd,但您可以將其命名為任何您喜歡的名稱。 不過,如果您將其命名相同,好消息是伺服器將識別該檔案名稱並自動對訪客隱藏它。 密碼檔案應包含以下內容:

使用者名稱:加密密碼

約翰_史密斯:oCF9Pam/MXJg2

拒絕訪客訪問

即使是網站,也存在不受歡迎的人。 使用正確的 .htaccess 文件,您可以限制某人的存取。 或者,另一方面,允許特定訪客進行特定存取。 如果您希望保護您的網站,第一個非常有用,如果您想完全控制網站的特定方面,則後者是完美的。

您可以透過兩種方式拒絕訪客的存取。 根據訪客的 IP 位址拒絕訪客的訪問,或者您可以根據引薦來源網址進行選擇。

透過IP拒絕

如果您希望將某些 IP 放入黑名單中,則可以藉助 .htaccess 檔案的某些協助輕鬆完成此操作。 按照相同的規則建立一個新的,然後新增以下文字。

命令允許、拒絕

來自 XXX.XXX 的拒絕

來自 XXX.XX.X 的拒絕。

允許所有人

當然,您應該將 X 替換為您想要封鎖的 IP 位址。 根據需要新增任意數量,此檔案將使 Web 伺服器知道您的網站不歡迎這些 IP 位址。 確保添加允許所有人,因為這行程式碼表示非常歡迎其他訪客訪問您的網站。

另一方面,如果您想成為唯一有權訪問的人,則應包含以下文字:

命令允許、拒絕

允許來自 XXX.0.0.0

所有人都否認

當然,您應該將 X 替換為您自己的 IP 位址。 這將告訴伺服器只有您才能訪問特定地點。

被推薦人拒絕

查看您的日誌,您發現可疑活動。 為什麼不將推薦人加入黑名單中,從而消除您的擔憂呢? 以下是使用 .htaccess 的方法。

只需像平常一樣建立文件即可。 輸入應如下圖所示:

重寫引擎開啟

# 選項 +FollowSymlinks

RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]

重寫規則 .* – [F]

這應該可以解決問題! 不過,您應該檢查伺服器上是否啟用了“mod_rewrite”,因為它可能會因對資源提出相當大的需求而被停用。 如果是,您應該與您的主機供應商核實。

本質上,這些行讓伺服器知道您的網站不歡迎來自 otherdomain\.com 的人。 當然,您應該在此處添加適當的網域。 末尾的“[NC]”部分也非常重要,因為它讓它知道您提供的網域不區分大小寫。 這意味著“OtherDomain”也是禁區。

如果您想阻止多個麻煩製造者,請添加“[NC,OR]”,然後繼續以相同的方式添加另一個:

RewriteCond %{HTTP_REFERER} anotherdomain\.com

您可以繼續這樣做,直到您滿意為止,但不要忘記在每一個的末尾添加“[NC,OR]”,除了最後一個。

防止壞機器人掃描您的網站

使用 .htaccess 的另一個完美理由是防止網站上的爬蟲。 雖然有些是無害的,會下載整個內容以供離線瀏覽,但有些是懷有惡意的。 也就是說,網路上充滿了惡意機器人,它們尋找電子郵件地址來填充垃圾郵件、安全漏洞,或只是為了獲取內容。

雖然這比前面的範例更高級一些,但您絕對應該嘗試一下。 必須以這種或那種方式防止這些壞機器人對您造成任何傷害。

只需像前面範例中那樣建立另一個 .htaccess 檔案。 您需要在其中寫入的內容與此類似:

重寫引擎開啟

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [或]

RewriteCond %{HTTP_USER_AGENT} ^SuperBot

重寫規則 ^.* – [F,L]

事實上,這個清單應該更長,因為它應該包括所有知名的蝙蝠機器人。 您可以在這裡找到這樣的清單。 包含的內容越多越好。

不過,請確保重命名它 - 使用機器人的名稱而不是 BlackWidow 或 SuperBot。 始終在每個末尾包含[OR] ,但請確保不要將其與最後一個一起使用。 瞧! 您的網站沒有所有這些惡意爬蟲!

還有更多嗎?

當然有。 如前所述,這畢竟是初學者指南。 您也可以使用 .htaccess 檔案執行許多其他操作。

例如,您可以使用 .htaccess 檔案來設定伺服器時區或變更其簽章。 如果您的網站嚴重依賴媒體,您可以使用它來確保下載所有媒體文件,而不是播放。 或者,您可以使用它來阻止包含無效字元等的請求。

雖然嘗試拼寫 .htaccess 很麻煩,但正如您所見,使用它是小菜一碟,而且您仍然可以用它完成很多事情!

建立和編輯文件時必須記住的是,在進行任何更改後,在將其上線之前對其進行徹底測試。 您不想向您的用戶提供 500 內部伺服器錯誤,是嗎?

最後一條建議

即使某些事情無法正常運作,也不要過度沮喪。 檢查是否有拼字錯誤,這通常可以解決問題! 如果沒有,請檢查支援論壇!