如何訪問和編輯默認的 WordPress .htaccess 文件
已發表: 2023-01-24每個 WordPress 安裝都有一系列“核心”文件。 這些是關鍵功能背後的文件,其中之一是.htaccess 。 它包括您的 Web 服務器的配置選項。 換句話說,它非常重要。
如果您知道如何查找和編輯.htaccess,則可以更改站點的永久鏈接結構、設置重定向、提高儀表板的安全性以及進行更多調整。 如果您仔細按照說明操作,您甚至不需要知道如何編碼。
在本文中,我們將討論 . htaccess文件及其工作原理。 我們將向您展示如何查找、訪問和編輯該文件。 最後,我們將總結一些常見問題。
什麼是 . htaccess文件?
.htaccess或超文本訪問文件不是 WordPress 獨有的。 每個 Apache Web 服務器都有一個.htaccess文件,其中包含服務器的配置設置。 對於 WordPress,該文件還包含有關您網站永久鏈接結構的說明。
以下是該文件在大多數網站上的默認外觀:
我們說“大多數網站”是因為一些主機自定義其客戶的.htaccess文件以包含附加功能。 儘管如此,該文件始終位於 WordPress根目錄中。
如果您有權訪問服務器,則可以找到並編輯.htaccess以對站點的功能進行重要更改。 您可以實施的一些更改包括:
- 添加重定向。 在服務器級別實施重定向。
- 更改永久鏈接結構。 當您更改網站的永久鏈接結構時,這些更改會反映在.htaccess中。 您可以使用該文件手動更改 URL 結構,而不是在 WordPress 管理面板中這樣做。
- 防止資源盜鏈。 如果您不希望其他網站使用您網站上的圖像或其他元素,您可以通過修改.htaccess文件來禁用熱鏈接。
- 配置對網站的訪問。 .htaccess使您能夠使用密碼保護目錄、將 IP 地址列入白名單以訪問儀表板等。
了解.htaccess是一個非常脆弱的文件很重要。 由於它允許您配置服務器級別的規則,因此如果您不小心更改文件可能會破壞您的網站。
您無需了解特定的編程語言即可編輯.htaccess ,儘管 PHP 知識會有所幫助。 如果您按照說明復制必要的代碼片段,您可以輕鬆修改該文件。
如果您不習慣使用代碼,一些插件可以為您編輯.htaccess 。 大多數安全和重定向插件通過編輯文件來工作,而無需打開它。 根據您要進行的更改,您可以使用插件來編輯.htaccess 。
哪裡是 。 htaccess文件位於 WordPress 中?
.htaccess文件位於 WordPress 根目錄中。 該目錄包含您所有的 WordPress 核心文件(如wp-config.php ),以及您上傳到網站的所有內容。
您無法訪問根目錄 WordPress 儀表板中的目錄。 要訪問.htaccess和其他類似的核心文件,您需要通過文件傳輸協議 (FTP) 或主機控制面板連接到您的服務器。
由於 WordPress 是開源軟件,您可以以任何您想要的方式自由編輯所有文件。 在下一節中,我們將向您展示如何安全地更改.htaccess (同樣的建議適用於所有其他 WordPress 核心文件)。
如何編輯您的 WordPress 。 htaccess文件(3 種方法)
編輯 WordPress .htaccess文件需要訪問根目錄 目錄。 但在進行任何更改之前,我們強烈建議您下載.htaccess文件的備份。 由於.htaccess處理服務器配置設置,文件代碼中的任何錯誤都可能導致您的網站無法訪問。 如果發生這種情況,您需要恢復以前版本的.htaccess 、刪除不正確的代碼或創建新的.htaccess文件以重新訪問您的網站。 考慮到這一點,最好謹慎行事並準備好最近的備份。
值得慶幸的是,備份.htaccess文件是一個非常簡單的過程。 首先通過主機的文件管理器或文件傳輸協議 (FTP) 軟件(如 FileZilla)訪問服務器的文件。 導航到您網站的根文件夾,通常稱為public_html、www或您的網站名稱。 在這裡,您會找到.htaccess文件。
如果您沒有看到該文件,您可能需要打開一個設置,使您能夠查看隱藏的文件。 這將取決於您的主機或 FTP 軟件。 如果您使用的是 cPanel,請單擊右上角的設置按鈕,然後單擊顯示隱藏文件 (dotfiles)和保存。
使用 FileZilla,您需要在連接到服務器之前切換此設置。 您所要做的就是轉到服務器 → 強制顯示隱藏文件。
找到.htaccess文件後,將其下載到您的計算機並將其重命名為您會記住的名稱,例如.htaccess_before-changes。 然後,如果您確實需要恢復所做的任何更改,只需從該文件中復制代碼並將其粘貼到服務器上的實時版本中。
1.使用FTP客戶端
訪問.htaccess文件的最佳方式是使用 FTP 客戶端。 在託管控制面板中,FTP 客戶端往往比文件管理器更容易導航,並且它們提供更多控制來與您站點的目錄和文件進行交互。
這取決於您使用哪個 FTP 客戶端。 但是,如果您以前沒有使用過 FTP,則可以考慮使用開源 FileZilla 選項。
要連接到 WordPress,您需要您站點的 FTP 憑據。 您在註冊託管計劃時應該已經收到了這些。 如果沒有,您可以在主機控制面板中找到它們。
獲得正確的憑據後,通過 FTP 連接到您的網站。 導航到顯示www 、 public_html 、 public或您網站名稱的文件夾。 這些是 WordPress根目錄最常用的名稱。
打開目錄,您應該會看到一組文件和文件夾,如下所示:
我們正在尋找的文件.htaccess位於這個頂級目錄中。 找到它後,右鍵單擊該文件並選擇查看/編輯(此選項的名稱可能會根據您使用的 FTP 客戶端而改變)。 這將使用您的默認文本編輯器打開文件。
同樣,在執行此步驟之前,請確保將文件下載到安全位置,以便在出錯時可以恢復代碼。
您對此文件所做的任何更改都需要在“# END WordPress”行之前進行。 為了讓事情井井有條,我們建議添加新的代碼片段,並與其他代碼片段分開一行。
如果可能,還可以添加這樣的註釋來確定每個片段的作用:
# This is a comment
這樣,如果您返回文件以刪除部分代碼,您將準確了解每個片段的作用。 準備就緒後,保存對文件所做的更改並關閉它。
FTP 客戶端會詢問您是否要更新服務器上的文件。 選擇顯示Yes的選項,僅此而已。 您對.htaccess所做的更改現在應該生效了。
2. 使用你的控制面板
使用 cPanel 編輯 WordPress .htaccess文件相對簡單,因為該軟件包含文件管理器功能。 但請記住,文件管理器附帶的文本編輯器非常簡陋。 如果可以,我們建議您改用 FTP 客戶端。
如果您更喜歡使用 cPanel,請登錄主機控制面板並在“文件”部分下查找“文件管理器”選項。
在下一個屏幕上,查找名為www 、 public_html 、 public或您網站名稱的目錄。 那是你的 WordPress 根目錄 目錄,它包含.htaccess文件。
右鍵單擊.htaccess並選擇“編輯”選項。 這將打開文件管理器的文本編輯器,使您能夠對文件進行更改。 同樣,確保您手頭有.htaccess文件的當前版本,如果需要可以恢復。
我們在上一節中包含了有關如何安全編輯.htaccess的說明。 確保在向文件添加代碼之前查看這些說明,以防止服務器出現任何問題。
3. 使用 WordPress 插件
如果您不想使用 FTP 客戶端或 cPanel 訪問.htaccess文件,一些插件會從 WordPress 儀表板提供此功能。 一個例子是 WebFactory 的 Htaccess 文件編輯器。
此插件向儀表板添加了一個新的WP Htaccess 編輯器選項卡。 從這裡,您可以使用僅適用於.htaccess的基本文本編輯器。
使用插件編輯.htaccess而不是常規文本編輯器的優勢在於,您可以訪問保存前測試文件等功能。 如果出現錯誤,您也可以恢復備份。
其他允許您編輯.htaccess的插件包括重定向和 Htaccess 文件編輯器。 在大多數情況下,我們建議使用 FTP 而不是插件。 但是,如果您只打算對.htaccess進行微小的更改,那麼插件可能會起到作用。
如何創建新的 WordPress .htaccess 文件
創建一個新的 WordPress .htaccess文件相對簡單。 有時,如果轉到根目錄,您將看不到.htaccess文件 您的 WordPress 網站的文件夾。 這可能是因為 WordPress 尚未生成文件。
有時,在您更改站點的默認永久鏈接結構之前,WordPress 不會生成.htaccess文件。 為此,請訪問 設置 → 永久鏈接。 WordPress 的默認永久鏈接結構設置為Plain。 但是您可能想將該結構更改為另一個更用戶友好的選項,例如Post name或Month and name 。
當您從Plain更改永久鏈接結構時,WordPress 將生成一個新的.htaccess文件。 它將包含您選擇的新結構的說明。
保存對站點永久鏈接結構的更改後,返回到 WordPress 根目錄 文件夾。 裡面應該有一個全新的.htaccess文件,您可以開始編輯它。
如何替換當前的 .htaccess 歸檔一個新的
如果要將.htaccess文件恢復為其原始內容,您可以刪除所有自定義代碼或完全替換它。 在許多情況下,替換文件是更簡單的選擇。 如果您遇到錯誤並且不確定是代碼的哪一部分導致了錯誤,這尤其適用。
在繼續之前,請下載現有.htaccess 文件的副本,以防萬一。
首先,您需要製作默認.htaccess文件的新副本。 為此,請在您的計算機上創建一個名為.htaccess的新文件(包括句點)。
然後,使用文本編輯器打開新文件並將以下代碼粘貼到其中:
# BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
這是.htaccess文件的默認代碼,它應該適用於每個網站。 唯一的例外是您使用的是多站點安裝。 在這種情況下,默認的.htaccess文件應該是這樣的,有一個子目錄設置:
# BEGIN WordPress Multisite # Using subfolder network type: https://wordpress.org/support/article/htaccess/#multisite RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress Multisite
或者,如果您使用多站點的子域設置,代碼將如下所示:
# BEGIN WordPress Multisite # Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress Multisite
在任何情況下,保存新的.htaccess文件並將其上傳到 WordPress 根目錄 目錄。 您可以按照我們之前關於使用 FTP 或 cPanel 訪問目錄的說明進行操作。 進入後,刪除現有的.htaccess文件並上傳新文件,或者簡單地上傳並覆蓋它。
您可以添加到您的 . htaccess文件
有幾種方法可以編輯.htaccess文件並向 WordPress 添加新功能。 每個代碼片段都稱為“規則”,因為它告訴服務器要做什麼。
在本節中,我們將向您介紹幾個可以在 WordPress .htaccess文件中實施的規則,並解釋它們的作用!
1. 通過 HTTPS 重定向所有流量
將安全套接字層 (SSL) 證書添加到 WordPress 後,您需要將網站配置為通過 HTTPS 加載。 您可以使用多個插件來實現此更改,但您也可以通過向.htaccess文件添加新規則來實現:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
此規則實施 301 重定向,將通過 HTTPS 處理每個 HTTP 請求。 如果您在實施此規則後在瀏覽器中看到安全錯誤,則您站點的 SSL 證書可能存在問題。
2.給目錄添加密碼
.htaccess使您能夠用密碼保護您網站的特定部分。 密碼提示不會顯示為登錄屏幕,而是直接通過瀏覽器顯示為彈出窗口。 如果您沒有輸入正確的密碼,服務器將阻止您訪問該頁面。
在此示例中,我們使用代碼對 WordPress 管理儀表板進行密碼保護:
<Files /wp-admin> AuthName "Prompt" AuthType Basic AuthUserFile /wp-admin Require valid-user </Files>
您可以通過編輯“/”之後的片段部分來更改要向其添加密碼的頁面。 例如,您可以在/wp-login.php中添加密碼提示,以進一步保護登錄頁面。
注意:需要密碼才能訪問主頁會中斷 Jetpack 的連接。 因此,如果您正在使用 Jetpack 的任何工具,您將不想實施此規則。
3.禁用對特定文件的訪問
除了禁止訪問網站的某些部分之外,您還可以阻止每個用戶訪問特定文件。 此規則對於核心文件很有用,因為您不希望任何其他人能夠下載或編輯它們。
對於此規則,我們使用代碼告訴服務器,如果訪問者試圖訪問與您指定的名稱之一匹配的文件,它應該阻止該連接:
<FilesMatch "^.*(error_log|wp-config\.php|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch>
您可以將更多文件添加到該列表,方法是用“|”分隔它們。 請記住,最後應該有一個“|” 規則中第一行斜杠前的符號。
4. 將 IP 地址列入黑名單
.htaccess中最有用的功能之一是能夠將特定 IP 地址列入黑名單。 如果您使用黑名單規則包含 IP 地址,它將無法訪問您網站的任何頁面。 該規則如下所示:
order allow,deny deny from 192.168.1.1 allow from
該示例使用本地主機 IP,但您可以將其替換為任何其他地址。 要包含多個地址,請使用逗號分隔它們。
請注意,將 IP 列入黑名單意味著擁有該地址的用戶將根本無法加載您網站的任何頁面。 他們不會看到 404 錯誤或被重定向到登錄頁面。 相反,他們會收到“拒絕訪問”錯誤。
了解阻止或允許 . htaccess不會取代在服務器級別或通過安全插件或服務完成的任何 IP 阻止或允許。 這就是為什麼確保我們的 IP 地址在服務器級別和您可能使用的任何安全插件中被允許很重要。
5.添加重定向
您可以使用.htaccess文件來實現多種類型的重定向。 早些時候,我們向您展示瞭如何使用重定向強制 WordPress 通過 HTTPS 加載。 但您也可以實施更直接的規則,將單個頁面重定向到第二個地址。
以下是基本 301 重定向在.htaccess 中的樣子:
Redirect 301 /page.html http://www.yoursite.com/page2.html
該文件還支持更複雜的重定向,例如將整個網站重定向到新的 URL。 這是該規則在實際中的樣子:
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.newsite.com/$1 [R=301,L]
如果您想停止在網站上工作並將其所有流量重定向到不同的屬性,則此規則可能很有用。
請記住,301 重定向是“永久性的”。 這意味著搜索引擎將它們解釋為“此頁面已永久移動到新地址”並傳遞其部分鏈接資產。
有關.htaccess文件的常見問題解答
如果您對 WordPress .htaccess文件仍有疑問,本節將為您解答。 讓我們先談談您可以用這個文件做什麼!
你可以用你的 .htaccess 做什麼 WordPress 上的文件?
WordPress 上的.htaccess文件用途廣泛。 您可以使用它來實現重定向、更新站點的永久鏈接結構、白名單 IP 地址、密碼保護目錄、強制站點通過 HTTPS 加載等等。
這些更改要求您使用插件或將代碼添加到.htaccess文件。 即使您不熟悉編碼也可以執行此操作,因為這些片段可以在線找到,包括在本文中!
如果找不到 WordPress .htaccess文件怎麼辦?
您可能無法在 WordPress 根目錄中找到.htaccess文件 目錄(如果尚未創建)。 在某些情況下,WordPress 不會生成文件,除非您將網站的永久鏈接結構從 Plain 更改為 到另一個選項。 在本文的前面部分,我們解釋瞭如何執行此操作。
.htaccess更改會立即生效嗎?
您對.htaccess所做的任何更改都應立即生效。 您無需重新啟動服務器即可使更改生效。
如果您編輯文件並且沒有看到更改立即反映出來,則可能是您的網絡託管服務商出現了問題。 在某些情況下,託管服務提供商可能不會為您的.htaccess文件提供覆蓋服務器配置的必要權限。 這在共享託管計劃中尤為常見。
我應該使用插件來編輯 . 訪問權限?
許多插件可以編輯.htaccess ,但其中一些工具不允許您訪問文件本身。 例如,如果您使用重定向插件,它可能會通過.htaccess 實現重定向,但不會向您顯示文件中的更改。
一些工具使您能夠從儀表板編輯.htaccess 。 但是這些插件通常提供有限的編輯器功能,使得實施更改變得更加困難。 只要有可能,我們建議您使用 FTP,這樣您就可以使用您最喜歡的文本編輯器與.htaccess進行交互。
您的 WordPress 網站的 . htaccess文件被黑客入侵?
如果攻擊者可以訪問您的服務器,他們還可以訪問.htaccess文件並使用它來破壞您網站的某些部分,實施惡意重定向,甚至將您完全鎖定在網站之外。
定期備份您的網站對於保護用戶數據和避免因攻擊而停機至關重要。 借助 Jetpack Security,您可以訪問實時自動備份和惡意軟件保護。
Jetpack 還會為您的網站添加防火牆。 此功能有助於進一步防止其他攻擊,例如 DDoS 事件或嘗試暴力破解 WordPress 登錄頁面。
我如何編輯 . Nginx 中的htaccess文件?
.htaccess文件是 Apache 服務器獨有的。 它們仍然很常見,因為 Apache 是市場上最受歡迎的服務器軟件之一。 但它不是唯一的。
許多流行的 WordPress 網絡主機都使用 Nginx,因為它比 Apache 具有多項優勢。 但是 Nginx 服務器沒有.htaccess文件。 這意味著您可能無法實施本文中討論的一些定制,或者過程可能完全不同。
什麼是默認 WordPress .htaccess 的示例 文件?
默認情況下, .htaccess文件在大多數 WordPress 網站上看起來應該是一樣的。 如果您未對其進行任何更改,則文件應包含以下代碼:
# BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
您可以使用此代碼將.htaccess文件恢復到其原始設置,以防在自定義時出現任何錯誤。 我們在本文前面的部分中包含了有關如何替換文件的說明。
改變 WordPress 。 htaccess文件
了解如何訪問和編輯 WordPress .htaccess文件可以幫助您更改網站上的關鍵功能並確保其安全。 如果您知道如何編輯它,您可以將此文件用於從實現重定向到密碼保護目錄的任何事情。
由於您處理的是 WordPress 核心文件,我們始終建議您提前創建備份。 開始處理該文件後,您可以使用本文中的代碼片段來實現新功能。
編輯.htaccess文件只是保護 WordPress 網站的一種方法。 Jetpack Scan 會持續監控您的站點是否存在威脅,通知您任何問題,並幫助您解決任何問題。 立即查看 Jetpack Scan!