WordPress .htaccess 文件的終極指南
已發表: 2022-08-10我真的不好理解:我的默認代碼看起來像中文。
我因我獨特的外表而脫穎而出,因為我的名字沒有擴展名。
我也有神奇的力量。 如果您正確設置我,我可以執行以下操作:
- 提高您網站的安全性。
- 提高頁面的加載速度。
- 設置重定向。
- 限制垃圾郵件。
- 甚至開幾個玩笑:那是我厚臉皮的一面。

你還不知道我是誰? 我是您的 WordPress 網站的.htaccess
文件。 讓我們在本指南中更好地了解我的工作方式。
在這些行中,您將發現三十多個配置我的指南。 它們以即用型代碼的形式實現,您只需在家中復制和粘貼即可。
繼續閱讀,你不會失望的!
概述
- 什麼是 .htaccess 文件?
- .htaccess 文件如何工作?
- 如何創建 .htaccess 文件
- 自定義 .htaccess 文件前的預防措施
- 如何正確修改您的 .htaccess 文件。
- 如何在網站根目錄自定義 .htaccess 文件?
- 如何在 wp-admin 中自定義 .htaccess 文件
- 如何在 wp-includes 中自定義 .htaccess 文件?
- 如何自定義 wp-content 中的 .htaccess 文件?
- 如何自定義 wp-content/uploads 中的 .htaccess 文件?
- 最後回顧一下 WordPress 中的 .htacess 文件
最初寫於 2015 年 10 月,本文最後更新於 2022 年 7 月。
什麼是 .htaccess 文件?
.htaccess
文件是 Apache 的配置文件,Apache 是大多數 Web 服務器用來運行的軟件。 該文件的內容將向 Apache 提供指令,以便服務器以某種方式運行。
請注意,某些 Web 主機僅在 NGINX 服務器上運行。 例如,飛輪就是這種情況。 他們沒有.htaccess
文件。
幾乎所有使用 WordPress 的網站都有一個
.htaccess
文件。 事實上,WordPress 在安裝過程中自動創建它,包括網站的永久鏈接設置。
當您轉到“設置”>“永久鏈接”以選擇 URL 格式(通常為“帖子名稱”)時, .htaccess
文件被修改。
.htaccess 文件如何工作?
您應該知道一個網站可以有多個.htaccess
文件。
首先,有一個主.htaccess
文件,位於網站的根目錄。
網站的根目錄是 WordPress 文件( wp-admin
、 wp-includes
和wp-content
文件夾以及其他一些文件)在您的服務器上的位置。 例如,您可以通過連接到 FTP 客戶端來訪問它們。 此根文件夾的名稱可能因您的託管服務提供商而異。 例如,它在 Bluehost(附屬鏈接)中稱為public_html
,在 OVH 中稱為www
。
主
.htaccess
文件的內容將影響整個網站。
可以在子目錄中創建其他.htaccess
文件。 例如,對於 WordPress,可以將其放在wp-admin
或wp-content/uploads
目錄中。
輔助.htaccess
文件將影響它們所在的目錄以及它們的子目錄。
如果我們想像.htaccess
文件存在於wp-content/uploads
中,則uploads
目錄及其所有子目錄將受到.htaccess
文件中定義的影響。
如何創建 .htaccess 文件
從邏輯上講,您的網站應該至少有一個.htaccess
文件,該文件位於您網站的根目錄。 您可以使用您喜歡的代碼編輯器(Sublime Text、Brackets、Notepad++、Coda 等)對其進行編輯。
還有其他解決方案,例如 Htaccess 文件編輯器插件,可以直接從您的 WordPress 儀表板進行編輯。
但是,如果有任何問題,你必須通過你的 FTP 客戶端和代碼編輯器,所以你還不如直接手動做。
如果您需要將.htaccess
文件添加到子目錄,請按照這些說明進行操作。
從您的計算機創建一個 .htaccess 文件
- 創建一個新的文本文件並將其命名為
htaccess.txt
。 - 根據需要編輯它。
- 將其發送到服務器的根目錄。
- 將其重命名為
.htaccess
。

從您的服務器創建一個 .htaccess 文件
- 右鍵單擊它應該所在的目錄。
- 添加一個新文件並將其命名為
.htaccess.
- 使用您的代碼編輯器(Notepad++、Coda、Sublime Text 或其他)對其進行編輯。
恭喜,您現在知道.htaccess
文件的用途以及如何創建它。 在找出可以添加的指南之前,請記住要小心!

自定義 .htaccess 文件前的預防措施
自定義.htaccess
文件的代碼非常簡單(尤其是使用本文其餘部分提供的代碼片段),但您仍然不應該大刀闊斧地進入它。
在進行任何更改之前,我建議您首先備份您的 WordPress 網站。 為此,您可以使用像 UpdraftPlus 這樣的專用插件。
接下來,保存.htaccess
文件的初始內容。 為此,您可以:
- 將服務器上的
.htaccess
文件複製到.htaccess-initial
文件中。 - 將文件的內容複製到計算機上的文本文件中。
如果您有問題,您可以輕鬆恢復原始內容。
如何正確修改您的 .htaccess 文件。
要進行任何更改,請按照以下步驟操作:
- 在代碼編輯器中打開文件。
- 將您添加的內容放入文件中。
- 保存。
- 更新您的網站以查看是否一切正常。
刷新您的網站非常重要:這將有助於查看添加的代碼是否存在任何問題。
一般來說,如果出現問題,屏幕上會出現 500 錯誤“Internal Server Error”:

在這種情況下,請撤消您的更改並再次保存。 一切都應該恢復正常。
有時,某些主機不接受.htaccess
文件中的特定代碼……
你將不得不處理它。
請聯繫房東的客戶服務以了解更多信息。 希望它只需要稍作修改即可使其正常工作。
您是否遇到 WordPress 錯誤,例如典型且普遍存在的 500 錯誤? WPMarmite 提供了解決主要問題的綜合指南。
這一次,一切都好。 您知道.htaccess
文件是如何工作的,如何正確創建和編輯它。
現在了解如何在 5 個不同的地方自定義它:
- 在網站的根
- 在
wp-admin
- 在
wp-includes
- 在
wp-content
- 在
wp-content/uploads
讓我們從網站的根目錄開始。 你會看到,這將是最一致的部分。
與所有計算機語言一樣, .htaccess
文件允許您包含註釋。 為此,只需將#
符號放在一行的開頭,以便忽略該行。 這對於記住代碼執行的行非常方便。 您將在本文的示例中看到註釋。
如何在網站根目錄自定義 .htaccess 文件?
如果您的安裝順利,您會在網站的根目錄中找到一個.htaccess
文件。 它將包含以下代碼:
如果您在多站點模式下使用 WordPress, .htaccess
文件的默認代碼會有所不同。 在大多數情況下,這不會影響您。
現在您已經找到了這個文件,您將能夠使用下面的代碼片段來增強它的內容,以完成一些特定的事情。 這可能與安全有關,但也可能與其他事情有關。
確保不要在註釋# BEGIN WordPress
和# END WordPress
WordPress 之間包含任何代碼,因為在某些情況下可能會修改此代碼。
另一個提醒:在進行任何更改之前保存您的原始.htaccess
文件。 如果您有任何問題,您需要能夠返回。
禁用顯示目錄
默認情況下,如果您嘗試訪問網站的目錄,服務器將顯示它們。 格式將如下所示:

你可以想像這是黑客的生計。 他們可以看到您網站上的文件這一事實將幫助他們更好地攻擊它。 將以下代碼插入您的.htaccess
文件以保護您的網站:
也可以使用此代碼來防止目錄列表:
隱藏服務器信息
對於某些託管服務提供商,顯示的頁面可能包含服務器信息。 這些信息可以為潛在的攻擊者提供詳細信息。
因此最好使用以下代碼隱藏它們:
啟用以下符號鏈接
我一定是在跟你胡說八道,但是將這行代碼插入到你的主.htaccess
文件中很重要:
這將允許您的服務器遵循所謂的符號鏈接,即短代碼。
將您的服務器設置為正確的時間
這並不重要,但如果您的服務器在國外,您可以使用以下代碼行告訴它設置為您的時區:
設置默認字符編碼
以下代碼允許您將文本和 HTML 文件的字符編碼設置為UTF-8
(一種計算機字符編碼)。 否則,口音可能會被誤解。
保護 wp-config.php
您網站的配置文件 ( wp-config.php
) 包含連接到數據庫的憑據。
這是您網站上最敏感的文件。 它可能成為潛在黑客的目標。 可以通過將此代碼添加到主.htaccess
文件來保護它:
保護 .htaccess 文件本身
與wp-config.php
文件一樣, .htaccess
文件必須得到最大程度的保護。 為此,請插入以下代碼:
限制評論垃圾郵件
如果你有博客,你和我一樣清楚,垃圾評論真的很痛苦。
值得慶幸的是,有一個技巧可以直接在.htaccess
文件中防止這種情況發生。 這不是一個快速解決方案,但結合 Akismet 插件,應該過濾掉大部分垃圾郵件。
不要忘記將mywebsite.com
替換為您的域名。
避免檢測到作者的 ID
即使您使用複雜的用戶登錄,它仍然可以被檢測到。
當然,我假設您還沒有將它與您的主題一起公開展示(它可能會發生)。
嘗試鍵入mywebsite.com/?author=x
將 x 替換為 1 作為管理員或您的一位作者的 ID。 如果您沒有受到保護,您將被重定向到類似mywebsite.com/author/author_id
的頁面。
這就是您如何在兩秒鐘內找到用戶 ID。 從那裡,剩下的就是嘗試猜測您的密碼。
為了保護自己免受這種技術的侵害,請使用以下代碼:
禁用圖片的盜鏈
什麼是盜鏈? 別擔心,我會解釋一切的。
基本上,一旦您將圖片添加到您的網站(例如在一篇文章中),任何人都可以復制您的一張圖片的 URL,並將其顯示在他們的網站上。
您可能認為這還不錯,但是如果出於某種原因,一個非常受關注的網站選擇了您的圖像並將其顯示在其中一個頁面上,則會向您的服務器發出請求。
盜鏈實際上是在竊取帶寬。 如果您的網站安裝在小型共享服務器上,您的主機可能不會欣賞它,因為資源有限。
為避免此問題,請在.htaccess
文件中插入並自定義此代碼:
要允許某些網站顯示您的圖像,請使用以下代碼:
您還可以自定義將代替請求的圖像顯示的圖像。 我添加了一些簡單的東西,但你可以更有創意。
禁止 IP 地址
如果您注意到某些 IP 地址過於頻繁地嘗試登錄您的網站管理(例如使用 Login Lockdown 插件),您可以通過禁止其 IP 地址來擺脫它們。
您還可以檢索垃圾評論發送者的 IP 地址,以禁止他們訪問您的網站。
此解決方案不是永久性的,因為您的攻擊者可能會更改 IP 地址,但它可能對技術較弱的人有效。
阻止來自某些網站的訪問者
如果您意識到一個不合規的網站已鏈接到您的網站,並且您不希望該網站的訪問者訪問您的網站,請使用以下代碼:
將訪問者從一個網站重定向到另一個網站
更進一步,您可以將訪問者從某些網站重定向到另一個網站。
這是要使用的代碼:
創建重定向
.htaccess
文件允許您進行重定向(將 URL A 重定向到 URL B)。

這對於重定向幾個頁面很方便,但是如果你想創建很多重定向,我推薦我在本文中介紹的 WordPress 重定向插件。
如何在.htaccess
文件中創建重定向:
將不帶 www 的地址重定向到帶 www 的地址
建立網站時,首先要完成的操作之一是將不帶www
的網站重定向到帶www
的版本(反之亦然)。
如果您在下次創建網站時進行測試,您會發現這兩個地址不一定鏈接到您的網站。
在某些情況下,託管公司會自動處理此問題,或者必須通過託管網站上的管理頁面激活它(例如,Gandi 就是這種情況)。
如果您需要手動執行此重定向,請通過將mywebsite.com
替換為您的網站來使用以下代碼:
將帶 www 的地址重定向到不帶 www 的地址
另一方面,如果您不想在網站名稱前加上www
(如 WPMarmite),則可以重定向到沒有www
的版本。
將以下代碼插入到.htaccess
文件中:
警告:不要將此代碼與前一個代碼一起使用,否則您的網站將遭受重定向循環(因為不帶www
的版本將重定向到帶有www
的版本,而後者將重定向到不帶www
的版本等)。
重定向到 HTTPS
如果您在網站上設置了 SSL 證書以將其切換為 HTTPS,則需要確保所有訪問者都在瀏覽您網站的安全版本。
否則,敏感信息可能會被黑客恢復(例如個人或銀行數據)。
使用以下代碼將您的整個網站切換到 HTTPS:
強制下載特定文件
當您想從網站下載文件時,您的瀏覽器有時會嘗試打開它以顯示它。
就個人而言,我覺得這對 PDF 文件很方便。 另一方面,對於其他類型的文件來說是非常不愉快的。
插入以下代碼以使您的訪問者直接下載具有這些擴展名的文件(根據需要修改它們):
創建自定義維護頁面
在上一篇文章中,您發現了一系列維護插件。 但是,在某些情況下,維護頁面將無法顯示。
這很煩人,不是嗎?
要獲取維護頁面,您可以使用以下代碼:
為此,您需要:
- 創建一個
maintenance.html
文件,其內容表明該網站正在維護中。 - 在第 4 行添加您的 IP 地址(確保保留“
\
”)以允許您訪問該網站(在該網站上查找您的 IP 地址)。
維護完成後,在每行前面加上“ #
”作為註釋傳遞。
啟用緩存
.htaccess
文件允許您在訪問者的瀏覽器中緩存您網站上的某些文件,以便它們加載更快。
事實上,瀏覽器不需要重新下載緩存中的文件。
為此,請插入以下代碼:
文件緩存將在為每種文件類型指定的持續時間內或訪問者清除其緩存之前有效。
為了通過緩存加速您的網站,我建議使用高級 WP Rocket 插件(附屬鏈接)。 由於設置簡單快捷,因此非常適合 WordPress 初學者。 在它的幫助下,您無需使用上面提供的代碼片段(一段代碼)。
啟用壓縮
除了到目前為止我們看到的所有內容之外,還可以在將某些資源從服務器傳輸到瀏覽器之前對其進行壓縮。
文件壓縮意味著更快的頁面加載速度。 因此,我建議您實現此代碼以提高您的網站速度:
禁止訪問某些腳本
為了發揮作用,WordPress 使用位於wp-includes
目錄中的腳本。 但是,沒有理由直接訪問它們。 使用此代碼限制訪問:
防止文件注入
黑客可能會嘗試將文件發送到您的服務器以控制您的網站。 要在他們的路徑中使用扳手,您可以在.htaccess
文件中包含以下代碼:
防範其他威脅
在 Facebook 上,Richard 告訴我,可以通過在.htaccess
文件中添加幾行來防止點擊劫持和其他威脅。
供您參考,點擊劫持是一種使用frame
或iframe
標籤幫助訪問者相信他在您的網站上的技術,當他們不在時。
因此,以下代碼有助於保護您免受點擊劫持、對抗 MIME 嗅探等其他威脅,並在 XSS 攻擊的情況下阻止內容(這會將 HTML 或 JavaScript 注入保護不良的變量中)。
就是這樣,您剛剛完成了一大堆優化以合併到位於網站根目錄的.htaccess
文件中。
讓我們繼續: wp-admin
、 wp-icludes
、 wp-content
和wp-content/uploads
文件夾的新代碼。
如何在 wp-admin 中自定義 .htaccess 文件
wp-admin
是您網站的巢穴。 您可以在這裡撰寫文章、配置菜單、設置主題等等。
不用說,未經授權的人不應進入這個避風港。 否則,請注意後果。
以下是您可以使用放置在網站wp-admin
文件夾中的.htaccess
文件來加強安全性的方法。
限制對網站管理的訪問
只有擁有列出 IP 的人才能訪問wp-admin
文件夾。 防止陌生人登錄您的網站非常方便(即使他們有正確的密碼)。
添加第二個身份驗證
當您登錄到 WordPress 網站的管理員時,您需要使用登錄名和密碼。 好吧,可以通過.htaccess
文件添加第二個文件,然後再添加另一個文件。
首先,在wp-admin
目錄中創建一個名為.htpasswd
的文件,並將用戶名和密碼對插入其中。 使用本網站指導您:

在第一個字段中輸入您要使用的用戶名,在第二個字段中輸入您的密碼,然後單擊“生成.htpasswd
文件”。
然後復制將出現在.htpasswd
文件中的行。 如果您需要創建多個用戶,請重複該過程並在新行中添加新的用戶名/密碼對。
例如,您可以獲得這種文件:
接下來,將以下代碼插入到.htaccess
文件中:
此操作的棘手部分是正確獲取.htpasswd
文件的完整路徑。 要確定找到它,請創建一個info.php
文件並插入以下代碼:
轉到yourwebsite.com/wp-admin/info.php
,您將獲得要放置在.htaccess
文件中的.htpasswd
文件的實際路徑。 找到正確的路徑後,刪除info.php
文件。
如果您按原樣插入此代碼,AJAX 請求將不再起作用。 使用以下代碼段解決問題:
如果您了解我剛才提到的所有內容,您應該有雙重身份驗證來訪問 WordPress 管理。
讓我們繼續下一部分。
如何在 wp-includes 中自定義 .htaccess 文件?
阻止直接訪問 PHP 文件
在wp-includes
中創建一個.htaccess
文件,並將以下代碼粘貼到其中,以防止 PHP 文件被直接加載。
以上代碼由 Sucuri 插件提供。
如何自定義 wp-content 中的 .htaccess 文件?
阻止直接訪問 PHP 文件
對於wp-content
文件夾,代碼類似,只是刪除了異常:
如何自定義 wp-content/uploads 中的 .htaccess 文件?
阻止直接訪問 PHP 文件
使用相同的代碼,保護存儲媒體的文件夾,以防止 PHP 文件被外部某人(例如討厭的黑客)執行。
最後回顧一下 WordPress 中的 .htacess 文件
正如您在本指南中所發現的, .htaccess
文件是一個非常強大的工具,用於配置您的網站服務器。
如果小心謹慎地處理,它可以提高您網站的安全性、性能、搜索引擎優化甚至用戶體驗。
#WordPress 網站的#htaccess 文件是一個強大的工具。 了解它是如何工作的,並按照 WPMarmite 的提示像廚師一樣進行設置。
再次,我建議您始終保留原始.htaccess
文件的備份,以便在出現任何問題時執行重置。
非常小心地進行更改(我會警告你的!)。 根據您網站的主機,可能會出現錯誤或不兼容性。
雖然本文已經介紹了很多內容,但可以使用各種資源進一步設置.htaccess
:
- WordPress 文檔和 Apache 文檔(運行您的服務器的軟件)。
- Perishable Press 博客,其中甚至有一本關於該主題的付費書籍。
在我說再見之前,我想在評論中獲得您的意見。 您是否自定義了.htaccess
文件?
最重要的是,隨時與其他讀者分享您習慣使用的任何代碼片段。