什麼是 .htaccess 文件?
.htaccess 文件是一個 Apache HTTP服務器 (通常只是稱為 Apache) 配置文件。 該文件非常強大,可用於幫助控制由以下網站提供的網頁的多個方面 Apache. 這包括管理重定向、熱鏈接保護等。
哪兒是 .htaccess 文件?
應該有一個 .htaccess 您的網絡主機根文件夾中的文件 - 包含您網站內容的文件夾(通常是 /public_html 或 /www)。
你可以擁有不止一個 .htaccess 您的主機帳戶上的文件,但每個目錄或文件夾只能有一個。 例如,您可以有單獨的 .htaccess 根文件夾中的文件和子文件夾中的另一個文件。 這允許您根據目錄結構設置不同的服務器行為。
.htaccess 文件功能強大,但如果沒有正確保護,可以訪問和修改。 確保您採取措施阻止訪問此文件。
您與伴侶的 .htaccess 文件可能被隱藏
首先 .htaccess 是 Apache 文件,這意味著您只能在 Apache 服務器.* 如果您的主機正在不同的 Web 服務器軟件(即 Microsoft IIS 或 NGINX)上運行,請停止搜索。
以點開頭的文件名通常是隱藏文件。 這意味著默認情況下它們通常不可見。
要查看此文件,只需在您的 FTP 客戶端或託管文件管理器(見下圖)。
你可能會覺得 .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。 管理自定義錯誤頁面
當保留默認設置時,大多數 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 文檔 頁面。
重定向可以為您做的最有用的事情之一是幫助您將搜索引擎引導到您移動的頁面。 通常情況下,搜索引擎會索引鏈接,如果他們找不到合適的頁面,他們會認為內容已經消失。
通過使用重定向,您可以輕鬆移動內容,並讓網絡抓取工具知道在哪裡可以找到他們之前編制索引的內容。 為此,請使用;
Redirect 301 /archive/ /past-entries/
301 指令不僅讓用戶訪問舊內容 seamlessly,但也可以作為內容永久移動的網絡爬蟲指令。 這有助於他們快速重新索引鏈接。
3. 提高網站安全性
我發現許多新的網站所有者往往過分依賴 外部工具,以提高其網站安全性. 雖然確實有很多很棒的應用程序,但您可以從您的基礎知識開始 .htaccess 文件。
密碼保護目錄
為此,您需要兩個文件, .htaccess 和.htpasswd。 .htpasswd 文件包括一些 數據加密,所以使用類似的工具 Htpasswd發電機 創建文件。 這 .htaccess 文件應包含此代碼;
AuthType Basic AuthName "Password Protected Area" AuthUserFile /path/to/.htpasswd Require valid-user
禁用目錄瀏覽
這是最容易做到的一種,只需要兩行代碼就可以包含在你的 .htaccess 文件;
# Disable directory browsing Options -Indexes
阻止特定IP
要阻止單個 IP 訪問您的網站,請將以下代碼添加到您的 .htaccess 文件;
Deny from XXX.XXX.XXX.XXX
您將 XXX 替換為數字 IP 值的位置。 此代碼有多種變體,可用於阻止一系列 IP地址 或多個 IP 地址。
4。 熱鏈接保護
當其他網站鏈接到您託管的圖像時,就會發生熱鏈接。 這是不可取的,因為他們正在利用您的空間和帶寬。 為防止圖片盜鏈,請將以下內容添加到您的 .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]
5. 保護 .htaccess 文件
到現在為止,你已經意識到一個工具是多麼有用 .htaccess 文件確實是。 既然你已經意識到,是時候考慮保護這個有價值的文件了! 如果您使用的是 .htpasswd 文件,那麼您可能也希望屏蔽它,而同時做到這一點的方法是;
# protect .htaccess and .htpasswd <Files ~ "^.*\.([Hh][Tt])"> Order allow,deny Deny from all Satisfy all </Files>
請注意,在大多數安全服務器上,這些文件已經受到保護。 在添加此代碼之前,請檢查您是否可以在瀏覽器窗口中訪問這些文件。 只需輸入 URL 並添加 /.htaccess 後面看是否可以查看文件。 如果不能,您可能會看到一條錯誤消息。
6。 設置服務器時區
如果您注意到由於某種原因或其他原因,您的服務器上的時間似乎有點偏離,那麼您可能需要使用 .htaccess 文件。 這又是一件很容易做到的事情,只需要一行代碼;
SetEnv TZ America/yourtimezone
有一個巨大的時區列表,你可以參考你找到最接近你的時區 支持的時區列表.
擁抱力量 .htaccess
我在這裡展示的樣本只是一個非常大的冰山一角。 它給 網絡託管 與通常通過控制面板允許的相比,用戶對其網站的控制權要大得多,並為他們提供了更廣泛的工具可供使用。
學習使用代碼僅僅是谷歌的力量的一步之遙,最好的事情是你只需挑选和學習你需要使用的東西。
.htaccess 文件常見問題
不,.use of .htaccess 不是強制性的。 然而,這是唯一的方法之一 共享主機 用戶可以對其進行一些控制 網絡託管 服務器。 如果您不打算在共享主機上更改服務器配置,則該文件是不必要的。
由於 .htaccess 文件用於服務器配置,它包含帶有相關說明的代碼。 例如,“SetEnv TZ America/yourtimezone”行將允許您根據自己的喜好設置服務器時區。
創建一個的最佳方法 .htaccess 文件是使用純文本編輯器。 例如,您可以在本地計算機上使用 Microsoft NotePad,然後將其上傳到您的 Web 託管服務器。 或者,大多數網絡託管文件管理器也允許您創建純文本文件。
.htaccess 文件沒有直接關係 WordPress 因為它用於服務器配置。 你的 WordPress 網站可能有也可能沒有。 如果它不存在,您仍然可以創建和使用 .htaccess 手動歸檔。