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

文章撰寫者:
  • 託管指南
  • 更新:Jul 29,2019

什麼是.htaccess文件?

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

.htaccess文件在哪裡?

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

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

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

我找不到我的.htaccess文件

首先.htaccess是一個Apache文件,這意味著你只能在Apache服務器中找到它。*停止搜索你的主機是否運行在不同的Web服務器軟件(即Microsoft IIS或NGINX)上。

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

要查看此文件,只需在FTP客戶端或主機文件管理器中打開“顯示隱藏文件”(請參見下圖)。

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

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

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

*注意:Apache有 關於30%市場佔用率 基於W3Techs報告。 WHSR提到的最受歡迎的託管品牌 - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting, SiteGround; 由Apache提供支持。

什麼.htaccess是為了什麼?

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

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

有一個很大的列表,可以使用.htaccess文件完成什麼,今天我將與你分享其中一些。

1。 管理自定義錯誤頁面

文字說明:一些創造性定制的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版本。

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

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

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

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

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

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

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

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

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

2。 提高您的網站安全性

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

密碼保護目錄

要做到這一點,你需要兩個文件,.htaccess和.htpasswd。 .htpasswd文件包含一些加密,因此請使用類似的工具 Htpasswd發電機 創建文件。 .htaccess文件應包含此代碼;

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

禁用目錄瀏覽

這是最容易做到的事情之一,只需要在.htaccess文件中包含兩行代碼;

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

阻止特定IP

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

拒絕來自XXX.XXX.XXX.XXX

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

3。 熱鏈接保護

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

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

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

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

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

哪個可以在違規網站上顯示替代圖像,如下所示:

4。 保護.htaccess文件

到目前為止,您已經意識到.htaccess文件真正有用的工具。 既然你已經意識到這一點,那麼你應該考慮保護這個有價值的文件了! 如果你使用的是.htpasswd文件,那麼你可能也希望屏蔽它,並且兩者的方法是:

#prote .htaccess和.htpasswd <Files~“^。* \。([Hh] [Tt])”>訂單允許,拒絕拒絕所有人滿意</ Files>

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

5。 設置服務器時區

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

SetEnv TZ America / yourtimezone

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

擁抱.htaccess的力量

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

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

關於Jerry Low

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