.htaccess的基礎:如何使用和示例

更新時間:2022-07-15 / 文章作者:Jerry Low
.htaccess的基礎:如何使用和示例

什麼是.htaccess文件?

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

.htaccess文件在哪裡?

Web主機根文件夾中應該有一個.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 允許訂購,拒絕全部拒絕全部滿意

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

6。 設置服務器時區

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

SetEnv TZ America / yourtimezone

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

擁抱.htaccess的力量

我在這裡展示的樣本只是一個非常大的冰山一角。 它給 虛擬主機 與通常通過控制面板允許的相比,用戶對其網站的控制權要大得多,並為他們提供了更廣泛的工具可供使用。

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

廣告

.htaccess 文件常見問題

我需要一個 .htaccess 文件嗎?

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

.htaccess 文件包含什麼?

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

如何創建 .htaccess 文件?

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

WordPress 有 .htaccess 文件嗎?

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

閱讀更多

關於Jerry Low

WebHostingSecretRevealed.net (WHSR) 的創始人 - 他的托管評論文受到 100,000 用戶的信任和使用。 在網絡託管、聯盟營銷和 SEO 方面擁有超過 15 年的經驗。 ProBlogger.net、Business.com、SocialMediaToday.com 等的貢獻者。