WordPress .htaccess 文件的終極指南

已發表: 2022-08-10

我真的不好理解:我的默認代碼看起來像中文。

我因我獨特的外表而脫穎而出,因為我的名字沒有擴展名。

我也有神奇的力量。 如果您正確設置我,我可以執行以下操作:

  • 提高您網站的安全性。
  • 提高頁面的加載速度。
  • 設置重定向。
  • 限制垃圾郵件。
  • 甚至開幾個玩笑:那是我厚臉皮的一面。
真的?!
笑話? 真的嗎?

你還不知道我是誰? 我是您的 WordPress 網站的.htaccess文件。 讓我們在本指南中更好地了解我的工作方式。

在這些行中,您將發現三十多個配置我的指南。 它們以即用型代碼的形式實現,您只需在家中復制和粘貼即可。

繼續閱讀,你不會失望的!

概述

  1. 什麼是 .htaccess 文件?
    1. .htaccess 文件如何工作?
      1. 如何創建 .htaccess 文件
        1. 自定義 .htaccess 文件前的預防措施
          1. 如何正確修改您的 .htaccess 文件。
            1. 如何在網站根目錄自定義 .htaccess 文件?
              1. 如何在 wp-admin 中自定義 .htaccess 文件
                1. 如何在 wp-includes 中自定義 .htaccess 文件?
                  1. 如何自定義 wp-content 中的 .htaccess 文件?
                    1. 如何自定義 wp-content/uploads 中的 .htaccess 文件?
                      1. 最後回顧一下 WordPress 中的 .htacess 文件

                        最初寫於 2015 年 10 月,本文最後更新於 2022 年 7 月。

                        您最好的 WordPress 項目需要最好的主機!

                        WPMarmite 推薦 Bluehost:出色的性能,出色的支持。 所有你需要一個好的開始。

                        試試 Bluehost
                        CTA Bluehost WPMarmite

                        什麼是 .htaccess 文件?

                        .htaccess文件是 Apache 的配置文件,Apache 是大多數 Web 服務器用來運行的軟件。 該文件的內容將向 Apache 提供指令,以便服務器以某種方式運行。

                        請注意,某些 Web 主機僅在 NGINX 服務器上運行。 例如,飛輪就是這種情況。 他們沒有.htaccess文件。

                        幾乎所有使用 WordPress 的網站都有一個.htaccess文件。 事實上,WordPress 在安裝過程中自動創建它,包括網站的永久鏈接設置。

                        當您轉到“設置”>“永久鏈接”以選擇 URL 格式(通常為“帖子名稱”)時, .htaccess文件被修改。

                        .htaccess 文件如何工作?

                        您應該知道一個網站可以有多個.htaccess文件。

                        首先,有一個主.htaccess文件,位於網站的根目錄。

                        網站的根目錄是 WordPress 文件( wp-adminwp-includeswp-content文件夾以及其他一些文件)在您的服務器上的位置。 例如,您可以通過連接到 FTP 客戶端來訪問它們。 此根文件夾的名稱可能因您的託管服務提供商而異。 例如,它在 Bluehost(附屬鏈接)中稱為public_html ,在 OVH 中稱為www

                        .htaccess文件的內容將影響整個網站。

                        可以在子目錄中創建其他.htaccess文件。 例如,對於 WordPress,可以將其放在wp-adminwp-content/uploads目錄中。

                        輔助.htaccess文件將影響它們所在的目錄以及它們的子目錄。

                        如果我們想像.htaccess文件存在於wp-content/uploads中,則uploads目錄及其所有子目錄將受到.htaccess文件中定義的影響。

                        如何創建 .htaccess 文件

                        從邏輯上講,您的網站應該至少有一個.htaccess文件,該文件位於您網站的根目錄。 您可以使用您喜歡的代碼編輯器(Sublime Text、Brackets、Notepad++、Coda 等)對其進行編輯。

                        還有其他解決方案,例如 Htaccess 文件編輯器插件,可以直接從您的 WordPress 儀表板進行編輯。

                        但是,如果有任何問題,你必須通過你的 FTP 客戶端和代碼編輯器,所以你還不如直接手動做。

                        如果您需要將.htaccess文件添加到子目錄,請按照這些說明進行操作。

                        從您的計算機創建一個 .htaccess 文件

                        1. 創建一個新的文本文件並將其命名為htaccess.txt
                        2. 根據需要編輯它。
                        3. 將其發送到服務器的根目錄。
                        4. 將其重命名為.htaccess
                        FTP 軟件上的 .htaccess 文件。

                        從您的服務器創建一個 .htaccess 文件

                        1. 右鍵單擊它應該所在的目錄。
                        2. 添加一個新文件並將其命名為.htaccess.
                        3. 使用您的代碼編輯器(Notepad++、Coda、Sublime Text 或其他)對其進行編輯。

                        恭喜,您現在知道.htaccess文件的用途以及如何創建它。 在找出可以添加的指南之前,請記住要小心!

                        注意你的眼睛,它可能會刺痛!

                        自定義 .htaccess 文件前的預防措施

                        自定義.htaccess文件的代碼非常簡單(尤其是使用本文其餘部分提供的代碼片段),但您仍然不應該大刀闊斧地進入它。

                        在進行任何更改之前,我建議您首先備份您的 WordPress 網站。 為此,您可以使用像 UpdraftPlus 這樣的專用插件。

                        接下來,保存.htaccess文件的初始內容。 為此,您可以:

                        • 將服務器上的.htaccess文件複製到.htaccess-initial文件中。
                        • 將文件的內容複製到計算機上的文本文件中。

                        如果您有問題,您可以輕鬆恢復原始內容。

                        如何正確修改您的 .htaccess 文件。

                        要進行任何更改,請按照以下步驟操作:

                        • 在代碼編輯器中打開文件。
                        • 將您添加的內容放入文件中。
                        • 保存。
                        • 更新您的網站以查看是否一切正常。

                        刷新您的網站非常重要:這將有助於查看添加的代碼是否存在任何問題。

                        一般來說,如果出現問題,屏幕上會出現 500 錯誤“Internal Server Error”:

                        500 內部服務器錯誤示例。

                        在這種情況下,請撤消您的更改並再次保存。 一切都應該恢復正常。

                        有時,某些主機不接受.htaccess文件中的特定代碼……

                        你將不得不處理它。

                        請聯繫房東的客戶服務以了解更多信息。 希望它只需要稍作修改即可使其正常工作。

                        您是否遇到 WordPress 錯誤,例如典型且普遍存在的 500 錯誤? WPMarmite 提供了解決主要問題的綜合指南。

                        這一次,一切都好。 您知道.htaccess文件是如何工作的,如何正確創建和編輯它。

                        現在了解如何在 5 個不同的地方自定義它:

                        1. 在網站的根
                        2. wp-admin
                        3. wp-includes
                        4. wp-content
                        5. wp-content/uploads

                        讓我們從網站的根目錄開始。 你會看到,這將是最一致的部分。

                        與所有計算機語言一樣, .htaccess文件允許您包含註釋。 為此,只需將#符號放在一行的開頭,以便忽略該行。 這對於記住代碼執行的行非常方便。 您將在本文的示例中看到註釋。

                        如何在網站根目錄自定義 .htaccess 文件?

                        如果您的安裝順利,您會在網站的根目錄中找到一個.htaccess文件。 它將包含以下代碼:

                         # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\. php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
                        WordPress .htaccess 文件默認代碼

                        如果您在多站點模式下使用 WordPress, .htaccess文件的默認代碼會有所不同。 在大多數情況下,這不會影響您。

                        現在您已經找到了這個文件,您將能夠使用下面的代碼片段來增強它的內容,以完成一些特定的事情。 這可能與安全有關,但也可能與其他事情有關。

                        確保不要在註釋# BEGIN WordPress# END WordPress WordPress 之間包含任何代碼,因為在某些情況下可能會修改此代碼。

                        另一個提醒:在進行任何更改之前保存您的原始.htaccess文件。 如果您有任何問題,您需要能夠返回。

                        禁用顯示目錄

                        默認情況下,如果您嘗試訪問網站的目錄,服務器將顯示它們。 格式將如下所示:

                        /wp-includes 的索引

                        你可以想像這是黑客的生計。 他們可以看到您網站上的文件這一事實將幫助他們更好地攻擊它。 將以下代碼插入您的.htaccess文件以保護您的網站:

                         # Disable display of directory contents Options All -Indexes

                        也可以使用此代碼來防止目錄列表:

                         # Alternative to prevent directory listing IndexIgnore *

                        隱藏服務器信息

                        對於某些託管服務提供商,顯示的頁面可能包含服務器信息。 這些信息可以為潛在的攻擊者提供詳細信息。

                        因此最好使用以下代碼隱藏它們:

                         # Hide the information from server ServerSignature Off

                        啟用以下符號鏈接

                        我一定是在跟你胡說八道,但是將這行代碼插入到你的主.htaccess文件中很重要:

                         # Enable following symbolic links Options +FollowSymLinks

                        這將允許您的服務器遵循所謂的符號鏈接,即短代碼。

                        將您的服務器設置為正確的時間

                        這並不重要,但如果您的服務器在國外,您可以使用以下代碼行告訴它設置為您的時區:

                         # Choose time zone SetEnv TZ America/New_York

                        設置默認字符編碼

                        以下代碼允許您將文本和 HTML 文件的字符編碼設置為UTF-8 (一種計算機字符編碼)。 否則,口音可能會被誤解。

                         # Default encoding of text and HTML files AddDefaultCharset UTF-8

                        保護 wp-config.php

                        您網站的配置文件 ( wp-config.php ) 包含連接到數據庫的憑據。

                        這是您網站上最敏感的文件。 它可能成為潛在黑客的目標。 可以通過將此代碼添加到主.htaccess文件來保護它:

                         # Protect the wp-config.php file <files wp-config.php> order allow,deny deny from all </files>

                        保護 .htaccess 文件本身

                        wp-config.php文件一樣, .htaccess文件必須得到最大程度的保護。 為此,請插入以下代碼:

                         # Protect .htaccess and .htpasswds files <Files ~ "^.*\.([Hh][Tt][AaPp])"> order allow,deny deny from all satisfy all </Files>

                        限制評論垃圾郵件

                        如果你有博客,你和我一樣清楚,垃圾評論真的很痛苦。

                        值得慶幸的是,有一個技巧可以直接在.htaccess文件中防止這種情況發生。 這不是一個快速解決方案,但結合 Akismet 插件,應該過濾掉大部分垃圾郵件。

                         # Avoid comment spam <IfModule mod_rewrite.c> RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.mywebsite.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>

                        不要忘記將mywebsite.com替換為您的域名。

                        加入 WPMarmite 訂閱者

                        獲取最新的 WPMarmite 帖子(以及獨家資源)。

                        現在訂閱
                        WPMarmite 英文通訊

                        避免檢測到作者的 ID

                        即使您使用複雜的用戶登錄,它仍然可以被檢測到。

                        當然,我假設您還沒有將它與您的主題一起公開展示(它可能會發生)。

                        嘗試鍵入mywebsite.com/?author=x將 x 替換為 1 作為管理員或您的一位作者的 ID。 如果您沒有受到保護,您將被重定向到類似mywebsite.com/author/author_id的頁面。

                        這就是您如何在兩秒鐘內找到用戶 ID。 從那裡,剩下的就是嘗試猜測您的密碼。

                        為了保護自己免受這種技術的侵害,請使用以下代碼:

                         # Prevent the detection of an author's ID <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* - [F] </IfModule>

                        禁用圖片的盜鏈

                        什麼是盜鏈? 別擔心,我會解釋一切的。

                        基本上,一旦您將圖片添加到您的網站(例如在一篇文章中),任何人都可以復制您的一張圖片的 URL,並將其顯示在他們的網站上。

                        您可能認為這還不錯,但是如果出於某種原因,一個非常受關注的網站選擇了您的圖像並將其顯示在其中一個頁面上,則會向您的服務器發出請求。

                        盜鏈實際上是在竊取帶寬。 如果您的網站安裝在小型共享服務器上,您的主機可能不會欣賞它,因為資源有限。

                        為避免此問題,請在.htaccess文件中插入並自定義此代碼:

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        將 mywebsite.com 替換為您的域名

                        要允許某些網站顯示您的圖像,請使用以下代碼:

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite2.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite3.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        將 mywebsite.com、mywebsite2.com 和 mywebsite3.com 替換為您選擇的域

                        您還可以自定義將代替請求的圖像顯示的圖像。 我添加了一些簡單的東西,但你可以更有創意。

                        禁止 IP 地址

                        如果您注意到某些 IP 地址過於頻繁地嘗試登錄您的網​​站管理(例如使用 Login Lockdown 插件),您可以通過禁止其 IP 地址來擺脫它們。

                        您還可以檢索垃圾評論發送者的 IP 地址,以禁止他們訪問您的網站。

                        此解決方案不是永久性的,因為您的攻擊者可能會更改 IP 地址,但它可能對技術較弱的人有效。

                         # Ban an IP address <Limit GET POST> order allow,deny deny from xxx.xxx.xxx.xxx allow from all </Limit>
                        將 xxx.xxx.xxx.xxx 替換為要封禁的 IP 地址

                        阻止來自某些網站的訪問者

                        如果您意識到一個不合規的網站已鏈接到您的網站,並且您不希望該網站的訪問者訪問您的網站,請使用以下代碼:

                         # Prevent visitors to these sites from accessing yours <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} mywebsite1.com [NC,OR] RewriteCond %{HTTP_REFERER} mywebsite2.com [NC,OR] RewriteRule .* - [F] </ifModule>
                        將 mywebsite1.com 和 mywebsite2.com 替換為您選擇的網站

                        將訪問者從一個網站重定向到另一個網站

                        更進一步,您可以將訪問者從某些網站重定向到另一個網站。

                        這是要使用的代碼:

                         # Redirect visitors from one site to another RewriteEngine on RewriteCond %{HTTP_REFERER} sourcewebsite\.com/ RewriteRule ^(.*)$ http://www.destinationwebsite.com [R=301,L]
                        用您選擇的網站替換源網站和目標網站

                        創建重定向

                        .htaccess文件允許您進行重定向(將 URL A 重定向到 URL B)。

                        這對於重定向幾個頁面很方便,但是如果你想創建很多重定向,我推薦我在本文中介紹的 WordPress 重定向插件。

                        如何在.htaccess文件中創建重定向:

                         # Redirection of any page Redirect 301 /oldpage/ http://www.mywebsite.com/newpage # Redirection of a new category (with renaming from category to topic) Redirect 301 /category/technology/ http://www.mywebsite.com/topic/techno/

                        將不帶 www 的地址重定向到帶 www 的地址

                        建立網站時,首先要完成的操作之一是將不帶www的網站重定向到帶www的版本(反之亦然)。

                        如果您在下次創建網站時進行測試,您會發現這兩個地址不一定鏈接到您的網站。

                        在某些情況下,託管公司會自動處理此問題,或者必須通過託管網站上的管理頁面激活它(例如,Gandi 就是這種情況)。

                        如果您需要手動執行此重定向,請通過將mywebsite.com替換為您的網站來使用以下代碼:

                         # Redirection of site without www to www RewriteEngine On RewriteCond %{HTTP_HOST} ^mywebsite. com [NC] RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
                        將 mywebsite.com 替換為您的域名

                        將帶 www 的地址重定向到不帶 www 的地址

                        另一方面,如果您不想在網站名稱前加上www (如 WPMarmite),則可以重定向到沒有www的版本。

                        將以下代碼插入到.htaccess文件中:

                        警告:不要將此代碼與前一個代碼一起使用,否則您的網站將遭受重定向循環(因為不帶www的版本將重定向到帶有www的版本,而後者將重定向到不帶www的版本等)。

                        重定向到 HTTPS

                        如果您在網站上設置了 SSL 證書以將其切換為 HTTPS,則需要確保所有訪問者都在瀏覽您網站的安全版本。

                        否則,敏感信息可能會被黑客恢復(例如個人或銀行數據)。

                        使用以下代碼將您的整個網站切換到 HTTPS:

                         # Redirection to HTTPS RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(. *)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

                        強制下載特定文件

                        當您想從網站下載文件時,您的瀏覽器有時會嘗試打開它以顯示它。

                        就個人而言,我覺得這對 PDF 文件很方便。 另一方面,對於其他類型的文件來說是非常不愉快的。

                        插入以下代碼以使您的訪問者直接下載具有這些擴展名的文件(根據需要修改它們):

                         # Force download for these file types AddType application/octet-stream .doc .docx .xls .xlsx .csv .mp3 .mp4

                        創建自定義維護頁面

                        在上一篇文章中,您發現了一系列維護插件。 但是,在某些情況下,維護頁面將無法顯示。

                        這很煩人,不是嗎?

                        要獲取維護頁面,您可以使用以下代碼:

                         # Maintenance page RewriteEngine on RewriteCond %{REQUEST_URI} ! /maintenance.html$ RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx RewriteRule $ /maintenance.html [R=302,L]

                        為此,您需要:

                        • 創建一個maintenance.html文件,其內容表明該網站正在維護中。
                        • 在第 4 行添加您的 IP 地址(確保保留“ \ ”)以允許您訪問該網站(在該網站上查找您的 IP 地址)。

                        維護完成後,在每行前面加上“ # ”作為註釋傳遞。

                        啟用緩存

                        .htaccess文件允許您在訪問者的瀏覽器中緩存您網站上的某些文件,以便它們加載更快。

                        事實上,瀏覽器不需要重新下載緩存中的文件。

                        為此,請插入以下代碼:

                         # Caching of files in the browser <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" ExpiresByType text/html "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/pdf "access plus 0 seconds" ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType application/x-font-woff2 "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" ExpiresByType text/css "access plus 6 month" ExpiresByType application/javascript "access plus 6 month" ExpiresByType application/x-shockwave-flash "access plus 1 week" ExpiresByType image/x-icon "access plus 1 week" </IfModule> # Headers Header unset ETag FileETag None <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "private, must-revalidate" </filesMatch> </ifModule>

                        文件緩存將在為每種文件類型指定的持續時間內或訪問者清除其緩存之前有效。

                        為了通過緩存加速您的網站,我建議使用高級 WP Rocket 插件(附屬鏈接)。 由於設置簡單快捷,因此非常適合 WordPress 初學者。 在它的幫助下,您無需使用上面提供的代碼片段(一段代碼)。

                        使用 WP Rocket 加速您的網站

                        使用 WordPress 專家認可的最強大的緩存插件將您的網站變成火箭。
                        試試 WP 火箭
                        標誌 WP 火箭

                        啟用壓縮

                        除了到目前為止我們看到的所有內容之外,還可以在將某些資源從服務器傳輸到瀏覽器之前對其進行壓縮。

                        文件壓縮意味著更快的頁面加載速度。 因此,我建議您實現此代碼以提高您的網站速度:

                         # Compression of static files <IfModule mod_deflate. c> AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x- javascript text/css BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\. 0 [678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \. (?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=! dont- vary </IfModule> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/json

                        禁止訪問某些腳本

                        為了發揮作用,WordPress 使用位於wp-includes目錄中的腳本。 但是,沒有理由直接訪問它們。 使用此代碼限制訪問:

                         # Block the use of certain scripts RewriteEngine On RewriteBase / RewriteRule ^wp- admin/includes/ - [F,L] RewriteRule ! ^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/. +\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L]

                        防止文件注入

                        黑客可能會嘗試將文件發送到您的服務器以控制您的網站。 要在他們的路徑中使用扳手,您可以在.htaccess文件中包含以下代碼:

                         # Protection against file injections RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] RewriteRule .* - [F]

                        防範其他威脅

                        在 Facebook 上,Richard 告訴我,可以通過在.htaccess文件中添加幾行來防止點擊劫持和其他威脅。

                        供您參考,點擊劫持是一種使用frameiframe標籤幫助訪問者相信他在您的網站上的技術,當他們不在時。

                        因此,以下代碼有助於保護您免受點擊劫持、對抗 MIME 嗅探等其他威脅,並在 XSS 攻擊的情況下阻止內容(這會將 HTML 或 JavaScript 注入保護不良的變量中)。

                         # Various protections (XSS, clickjacking and MIME-Type sniffing) <ifModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options: "nosniff” </ifModule>

                        就是這樣,您剛剛完成了一大堆優化以合併到位於網站根目錄的.htaccess文件中。

                        讓我們繼續: wp-adminwp-icludeswp-contentwp-content/uploads文件夾的新代碼。

                        如何在 wp-admin 中自定義 .htaccess 文件

                        wp-admin是您網站的巢穴。 您可以在這裡撰寫文章、配置菜單、設置主題等等。

                        不用說,未經授權的人不應進入這個避風港。 否則,請注意後果。

                        以下是您可以使用放置在網站wp-admin文件夾中的.htaccess文件來加強安全性的方法。

                        限制對網站管理的訪問

                        只有擁有列出 IP 的人才能訪問wp-admin文件夾。 防止陌生人登錄您的網​​站非常方便(即使他們有正確的密碼)。

                         <Limit GET POST PUT> order deny,allow deny from all # Alex's IP allow from xxx.xxx.xxx.xxx # Nico's IP allow from xxx.xxx.xxx.xxx # IP of another access point allow from xxx.xxx.xxx.xxx </Limit>

                        添加第二個身份驗證

                        當您登錄到 WordPress 網站的管理員時,您需要使用登錄名和密碼。 好吧,可以通過.htaccess文件添加第二個文件,然後再添加另一個文件。

                        首先,在wp-admin目錄中創建一個名為.htpasswd的文件,並將用戶名和密碼對插入其中。 使用本網站指導您:

                        HTPasswd Generator 工具界面。

                        在第一個字段中輸入您要使用的用戶名,在第二個字段中輸入您的密碼,然後單擊“生成.htpasswd文件”。

                        然後復制將出現在.htpasswd文件中的行。 如果您需要創建多個用戶,請重複該過程並在新行中添加新的用戶名/密碼對。

                        例如,您可以獲得這種文件:

                         alex:ieS547B1UxY8M jack:rSqEJf0SeTlRs
                        .htpasswd 文件的虛擬內容

                        接下來,將以下代碼插入到.htaccess文件中:

                         # Second authentication for administration <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> AuthName "Login to the administration" AuthType Basic AuthUserFile "/full/path/to/the/file/.htpasswd" Require valid-user

                        此操作的棘手部分是正確獲取.htpasswd文件的完整路徑。 要確定找到它,請創建一個info.php文件並插入以下代碼:

                         <?php echo "Path to copy: " . realpath('.htaccess'); ?>
                        將 info.php 文件放在 wp-admin 中

                        轉到yourwebsite.com/wp-admin/info.php ,您將獲得要放置在.htaccess文件中的.htpasswd文件的實際路徑。 找到正確的路徑後,刪除info.php文件。

                        如果您按原樣插入此代碼,AJAX 請求將不再起作用。 使用以下代碼段解決問題

                         AuthType Basic AuthName "Protected page" AuthUserFile /home/.htpasswd Require valid-user <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> <Files admin-post.php> Order allow,deny Allow from all Satisfy any </Files> <Files "\.(css|gif|png|js)$"> Order allow,deny Allow from all Satisfy any </Files>
                        將 info.php 文件放在 wp-admin 中

                        如果您了解我剛才提到的所有內容,您應該有雙重身份驗證來訪問 WordPress 管理。

                        讓我們繼續下一部分。

                        如何在 wp-includes 中自定義 .htaccess 文件?

                        阻止直接訪問 PHP 文件

                        wp-includes中創建一個.htaccess文件,並將以下代碼粘貼到其中,以防止 PHP 文件被直接加載。

                         # Blocks direct access to PHP files (Thanks to Sucuri) <Files wp-tinymce.php> allow from all </Files> <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch> <Files wp-tinymce.php> Allow from all </Files> <Files ms-files.php> Allow from all </Files>

                        以上代碼由 Sucuri 插件提供。

                        如何自定義 wp-content 中的 .htaccess 文件?

                        阻止直接訪問 PHP 文件

                        對於wp-content文件夾,代碼類似,只是刪除了異常:

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch>

                        如何自定義 wp-content/uploads 中的 .htaccess 文件?

                        阻止直接訪問 PHP 文件

                        使用相同的代碼,保護存儲媒體的文件夾,以防止 PHP 文件被外部某人(例如討厭的黑客)執行。

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\. (?i:php)$"> <IfModule ! mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core. c> Require all denied </IfModule> </FilesMatch>

                        最後回顧一下 WordPress 中的 .htacess 文件

                        正如您在本指南中所發現的, .htaccess文件是一個非常強大的工具,用於配置您的網站服務器。

                        如果小心謹慎地處理,它可以提高您網站的安全性、性能、搜索引擎優化甚至用戶體驗。

                        #WordPress 網站的#htaccess 文件是一個強大的工具。 了解它是如何工作的,並按照 WPMarmite 的提示像廚師一樣進行設置。

                        點擊推文

                        再次,我建議您始終保留原始.htaccess文件的備份,以便在出現任何問題時執行重置。

                        非常小心地進行更改(我會警告你的!)。 根據您網站的主機,可能會出現錯誤或不兼容性。

                        雖然本文已經介紹了很多內容,但可以使用各種資源進一步設置.htaccess

                        • WordPress 文檔和 Apache 文檔(運行您的服務器的軟件)。
                        • Perishable Press 博客,其中甚至有一本關於該主題的付費書籍。

                        在我說再見之前,我想在評論中獲得您的意見。 您是否自定義了.htaccess文件?

                        最重要的是,隨時與其他讀者分享您習慣使用的任何代碼片段。