基礎知識 .htaccess: 如何使用和例子

基礎知識 .htaccess: 如何使用和例子

什麼是 .htaccess 文件?

.htaccess 文件是一個 Apache HTTP服務器 (通常只是稱為 Apache) 配置文件。 該文件非常強大,可用於幫助控制由以下網站提供的網頁的多個方面 Apache. 這包括管理重定向、熱鏈接保護等。

哪兒是 .htaccess 文件?

應該有一個 .htaccess 您的網絡主機根文件夾中的文件 - 包含您網站內容的文件夾(通常是 /public_html 或 /www)。

你可以擁有不止一個 .htaccess 您的主機帳戶上的文件,但每個目錄或文件夾只能有一個。 例如,您可以有單獨的 .htaccess 根文件夾中的文件和子文件夾中的另一個文件。 這允許您根據目錄結構設置不同的服務器行為。

.htaccess 文件功能強大,但如果沒有正確保護,可以訪問和修改。 確保您採取措施阻止訪問此文件。

您與伴侶的 .htaccess 文件可能被隱藏

首先 .htaccess 是 Apache 文件,這意味著您只能在 Apache 服務器.* 如果您的主機在不同的服務器上運行,請停止搜索 Web服務器 軟件(即 Microsoft IIS 或 NGINX)。

以點開頭的文件名通常是隱藏文件。 這意味著默認情況下它們通常不可見。

要查看此文件,只需在您的 則fTP 客戶端或託管文件管理器(見下圖)。

發現 .htaccess 文件 - 如何在 cPanel 文件管理器中顯示隱藏文件
示例–通過在cPanel文件管理器中啟用此選項來顯示隱藏文件。

你可能會覺得 .htaccess 文件是一個不便,因為它需要 編碼 但考慮需要跨多個站點建立相同服務器行為的用戶。 該人需要做的就是複制 .htaccess 文件。

.htaccess 文件是服務器配置文件,因為它們直接處理行為,所以每次發出請求時都不需要運行某些東西。 因此,例如,與使用插件相比,它的資源密集度要低得多。

* 注意: Apache 有 關於22.8%市場佔用率 根據 W3Techs 2022 年 XNUMX 月的報告,排名前百萬的網站。 提到的最受歡迎的託管品牌 WHSR - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting 由...提供動力 Apache. 

運用 .htaccess 文件 – 現實生活中的示例和代碼示例

雖然文件名前面有一個點,但 htaccess 是文件的名稱,點並不會使其成為擴展名。 具體來說,正是這個確切的文件名 Apache 尋找它何時運行。 裡面的任何東西 .htaccess 文件設置參數 Apache 在滿足某些條件時啟用或禁用功能甚至執行特定任務。

例如,根據文件中包含的說明, Apache 如果您的網站訪問者正在尋找不存在的資源,則可以自動加載自定義錯誤頁面。 每種錯誤類型都有自己的代碼,並且每個錯誤都可以單獨重定向。

有一個巨大的列表可以使用 .htaccess 文件,今天我將與您分享其中的一些。

1。 管理自定義錯誤頁面

運用 .htaccess ErrorDocument 404 將您的用戶重定向到另一個頁面。
一些創意定制的例子 404錯誤 網頁

當保留默認設置時,大多數 Web 服務器軟件會向您的訪問者發送一個看起來非常暗淡的錯誤頁面。 如果你想顯示一個對用戶更友好(或者至少是像樣的)錯誤頁面,那麼你需要在你的 .htaccess 文件。

比方說你設計了一個 自定義404錯誤頁面 命名為“404.html”並將其保存到您的 Web 目錄中名為“error_pages”的子文件夾中。 在中使用以下代碼行 .htaccess,您可以在訪問者遇到 404 錯誤時調用該頁面;

ErrorDocument 404 /error_pages/404.html

使用此技術,您可以保存您想要解決的每種錯誤類型的自定義副本,並通過在您的 .htaccess 文件。 最常遇到的 錯誤代碼 包括;

  • 400 –錯誤的要求
  • 403 - 禁止
  • 404 –找不到文件
  • 500 - 內部服務器錯誤
  • 503服務不可用

2。 處理重定向

在某些情況下,您可能希望設置一攬子重定向,以便您可以在不知情的情況下將訪問者定向到特定頁面。 例如,如果您最初使用HTTP但從那時起 安裝SSL並移至HTTPS,您希望所有用戶都使用您網站的HTTPS版本。

在這種情況下,您需要做的是使用重寫規則;

RewriteCond%{SERVER_PORT}上的RewriteEngine 80 RewriteRule ^(。*)$ https://www.yourdomain.com/$1 [R,L]

可以根據您的需要修改此代碼。 例如,如果您想將用戶從舊域重定向到新域,那麼您可以使用;

RewriteCond%{HTTP_HOST} ^ olddomain.com [NC,OR]上的RewriteEngine RewriteCond%{HTTP_HOST} ^ www.olddomain.com [NC] RewriteRule ^(。*)$ http://newdomain.com/$1 [L,R = 301,NC]

如何設置重定向有很多變化。 細節 重寫的語法 可以在。中找到 Apache 文檔 頁面。

重定向可以為您做的最有用的事情之一是幫助您將搜索引擎引導到您移動的頁面。 通常情況下,搜索引擎會索引鏈接,如果他們找不到合適的頁面,他們會認為內容已經消失。

通過使用重定向,您可以輕鬆移動內容,並讓網絡抓取工具知道在哪裡可以找到他們之前編制索引的內容。 為此,請使用;

重定向301 / archive / / past-entries /

301指令不僅允許用戶無縫訪問舊內容,還可以作為網絡抓取工具的指令,永久移動內容。 這有助於他們快速重新索引鏈接。

3. 提高網站安全性

我發現許多新的網站所有者往往過分依賴 外部工具,以提高其網站安全性. 雖然確實有很多很棒的應用程序,但您可以從您的基礎知識開始 .htaccess 文件。

密碼保護目錄

為此,您需要兩個文件, .htaccess 和.htpasswd。 .htpasswd 文件包括一些 加密,所以使用類似的工具 Htpasswd發電機 創建文件。 這 .htaccess 文件應包含此代碼;

AuthType基本AuthName“密碼保護區” AuthUserFile /path/to/.htpasswd需要有效用戶

禁用目錄瀏覽

這是最容易做到的一種,只需要兩行代碼就可以包含在你的 .htaccess 文件;

#禁用目錄瀏覽選項 - 索引

阻止特定IP

要阻止單個 IP 訪問您的網站,請將以下代碼添加到您的 .htaccess 文件;

拒絕來自XXX.XXX.XXX.XXX

使用數字IP值替換XXX的位置。 此代碼的變體可用於阻止一系列IP地址或多個IP地址。

4。 熱鏈接保護

當其他網站鏈接到您託管的圖像時,就會發生熱鏈接。 這是不可取的,因為他們正在利用您的空間和帶寬。 為防止圖片盜鏈,請將以下內容添加到您的 .htaccess 文件;

RewriteCond%{HTTP_REFERER}上的RewriteEngine!^ $ RewriteCond%{HTTP_REFERER}!^ http://(www \。)example.com/.*$ [NC] RewriteRule \。(gif | jpg | jpeg | bmp)$- [F]

該代碼的最後一行是您指定要阻止站點進行熱鏈接的文件的位置。 基本上是在指導 Apache 阻止指向那些不是來自的文件的所有鏈接 域名 http://www.example.com/.

許多熱鏈接的人經常不再檢查他們的帖子,所以如果你真的想讓他們難堪,你可以向試圖熱鏈接的網站顯示自定義消息;

RewriteCond%{HTTP_REFERER}上的RewriteEngine!^ $ RewriteCond%{HTTP_REFERER}!^ http://(www \。)example.com/.*$ [NC] RewriteRule \。(gif | jpg)$ http:// www .example.com / stopstealing.gif [R,L]

5. 保護 .htaccess 文件

到現在為止,你已經意識到一個工具是多麼有用 .htaccess 文件確實是。 既然你已經意識到,是時候考慮保護這個有價值的文件了! 如果您使用的是 .htpasswd 文件,那麼您可能也希望屏蔽它,而同時做到這一點的方法是;

# 保護 .htaccess 和 .htpasswd Order allow,deny Deny from all 滿足所有

請注意,在大多數安全服務器上,這些文件已經受到保護。 在添加此代碼之前,請檢查您是否可以在瀏覽器窗口中訪問這些文件。 只需輸入 URL 並添加 /.htaccess 後面看是否可以查看文件。 如果不能,您可能會看到一條錯誤消息。

6。 設置服務器時區

如果您注意到由於某種原因或其他原因,您的服務器上的時間似乎有點偏離,那麼您可能需要使用 .htaccess 文件。 這又是一件很容易做到的事情,只需要一行代碼;

SetEnv TZ America / yourtimezone

有一個巨大的時區列表,你可以參考你找到最接近你的時區 支持的時區列表.

擁抱力量 .htaccess

我在這裡展示的樣本只是一個非常大的冰山的一角。 它為網絡託管用戶提供了比通常通過控制面板允許的更強大的功能,並為他們提供了更廣泛的工具。

學習使用代碼僅僅是谷歌的力量的一步之遙,最好的事情是你只需挑选和學習你需要使用的東西。

.htaccess 文件常見問題

我需要一個 .htaccess 文件?

不,.use of .htaccess 不是強制性的。 然而,這是唯一的方法之一 共享主機 用戶可以對其進行一些控制 虛擬主機 服務器。 如果您不打算在共享主機上更改服務器配置,則該文件是不必要的。

是什麼 .htaccess 文件包含?

由於 .htaccess 文件用於服務器配置,它包含帶有相關說明的代碼。 例如,“SetEnv TZ America/yourtimezone”行將允許您根據自己的喜好設置服務器時區。

我如何創建一個 .htaccess 文件?

創建一個的最佳方法 .htaccess 文件是使用純文本編輯器。 例如,您可以在本地計算機上使用 Microsoft NotePad,然後將其上傳到您的 Web 託管服務器。 或者,大多數網絡託管文件管理器也允許您創建純文本文件。

WordPress 有沒有 .htaccess 文件?

.htaccess 文件沒有直接關係 WordPress 因為它用於服務器配置。 您的 WordPress 網站可能有也可能沒有。 如果它不存在,您仍然可以創建和使用 .htaccess 手動歸檔。

閱讀更多

作者照片

Jerry Low 的文章