WordPress .htaccess文件:它是什麼以及它可以用它做什麼!

如果您想知道WordPress .htaccess文件是什麼,那麼您就走在正確的軌道上,因為如果您想成為WordPress開發人員,那麼了解WordPress中每個文件的作用非常重要。此外,如果你將其分解並了解每個文件的作用,WordPress的文件結構很容易理解。

表中的內容

  1. 在我們開始之前
    • 備份WordPress網站
    • 創建WordPress網站的本地副本
    • 創建WordPress登台/開發網站
    • 備份當前WordPress htaccess文件
  2. 如何訪問.htaccess文件
  3. 你可以用WordPress中的Htaccess文件做什麼
    • 設置重定向
    • 301(永久)重定向
    • 302(臨時)重定向
    • 強制URL到www
    • 強制URL到非www
    • 強制HTTP
    • 強制HTTP
    • 將域重定向到子目錄
    • 將主域重定向到另一個域
    • 刪除Query_String
    • 根據客戶端設置語言變數
    • 將WordPress Feed重定向到Feedburner
  4. 使用htaccess規則優化WordPress速度
    • 設置瀏覽器緩存的過期標題
    • 啟用Gzip壓縮
    • 使用WordPress htaccess文件增加最大上載文件大小
  5. 提高您的WordPress網站的安全性
    • 保護.htaccess
    • 限制對WordPress管理面板的訪問
    • 密碼保護單個文件
    • 安全重要文件
    • 保護/ wp內容/
    • 阻止IP地址
    • 拒絕訪問某些文件
    • 防止文件圖像/文件熱鏈接和帶寬竊取

在這種情況下,WordPress .htaccess文件是可用於優化網站速度,提高安全性以及在WordPress網站上設置特定重定向規則的核心文件之一。

htaccess的主要目的是為Web伺服器(Apache)定義如何操作您的網站(WordPress)的規則。默認的WordPress .htaccess文件控制著WordPress網站上鏈接(永久鏈接)的顯示效果,但是你可以使用WordPress中的htaccess文件做更多的事情。

在我們開始之前

在沒有備份的情況下編輯WordPress文件絕不是一個好主意。因此,我建議您在編輯htaccess文件之前使用以下方法之一:

備份WordPress網站 – 您應該有一個備份策略,這是備份整個WordPress網站時應該採取的最簡單的安全步驟之一。

另請閱讀:最佳WordPress備份插件

創建WordPress網站的本地副本 – 您可以在Mac或PC上本地安裝WordPress,並將您的實時網站複製到其中進行編輯。如果一切正常,您可以將htaccess文件複製到您的實際站點(但不適用於URL重定向規則)。

創建WordPress登台/開發網站 – 託管WordPress託管提供商的一個非常常見的功能是創建一個登台和開發站點。登台站點位於臨時URL上,是您的實時網站的副本。您可以在開發站點上進行更改,並在完成後將更改推送到您的實際站點。 Cloudways,Pantheon和Siteground是一些以提供此功能而聞名的託管服務提供商。

備份當前WordPress htaccess文件 – 您可以在進行編輯之前創建htaccess文件的備份。如果在編輯htaccess後出現任何問題,您只需將其替換為備份文件即可。

如何訪問.htaccess文件

WordPress初學者的前兩個​​問題會問「WordPress中的htaccess文件在哪裡?」和「如何訪問htaccess文件?」。好吧,你可以在你的WordPress網站的根目錄(public_html)中找到htaccess文件並訪問它,你可以使用像FileZilla這樣的FTP客戶端。

如果你在WordPress根目錄中找不到htaccess文件,那麼你的WordPress網站可能沒有默認的htaccess文件,或者你的FTP客戶端沒有顯示隱藏文件。默認情況下,htaccess是一個隱藏文件,這就是它以「。」開頭的原因。

要在FileZilla中查看隱藏文件,請執行以下操作:

  • 打開Filezilla FTP並連接到您的網路伺服器。
  • 導航到安裝WordPress的根目錄。
  • 從屏幕頂部的菜單欄中選擇Server。
  • 選擇「強制顯示隱藏文件」。

如果在顯示隱藏文件後仍然看不到任何htaccess文件,則表示您的WordPress網站沒有.htaccess文件。不過不要擔心,因為你的WordPress正在運行「永久鏈接」的默認規則。

要生成htaccess,請登錄到WordPress管理員,導航到「設置」>「固定鏈接」,然後單擊「保存更改」。

執行此操作後,刷新FTP客戶端屏幕,您將看到默認代碼的htaccess文件。

#BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^ index .php $ – (L)
RewriteCond%{REQUEST_FILENAME}! – f
RewriteCond%{REQUEST_FILENAME}!-d
重寫規則。 /index.php(L)

#END WordPress

你可以用WordPress中的Htaccess文件做什麼

既然你知道如何進入htaccess文件,現在是時候深入了解你可以在WordPress htaccess文件中定義的具體規則。我將規則分為三類:

  • 重定向規則
  • 提高WordPress的速度
  • 使WordPress安全

設置重定向

首先,讓我們介紹一下您可以在WordPress網站上實施的最常見的重定向規則。

301(永久)重定向

301重定向規則告訴訪問者的瀏覽器和搜索引擎機器人某個URL已永久移動到另一個URL。這是一個常見的重定向規則,SEO用於保留其在SERP中的頁面排名:

重定向301 /oldpage.html http://www.yourwebsite.com/newpage.html

302(臨時)重定向

如果您正在處理主URL並希望暫時將訪問者重定向到其他頁面,那麼您可能需要使用302重定向規則。

重定向302 /oldpage.html http://www.yourwebsite.com/newpage.html

強制URL到www

如果您希望您的網址始終以www開頭,請使用以下代碼,以使您的網址在整個網站上保持一致:

RewriteEngine on
RewriteCond%{HTTP_HOST} ^ example.com(NC)
RewriteRule ^(。*)$ http://www.example.com/$1(L,R = 301,NC)

強制URL到非www

同樣,如果您更喜歡沒有www的更乾淨的URL,以下代碼將為您完成:

RewriteEngine on
RewriteCond%{HTTP_HOST} ^ www.example.com(NC)
RewriteRule ^(。*)$ http://example.com/$1(L,R = 301)

強制HTTP

如果您在WordPress網站上使用SSL證書,您可能希望所有訪問者和搜索引擎抓取工具重定向到您網站的HTTPs版本。使用此代碼:

RewriteEngine On
RewriteCond%{HTTP:X-Forwarded-Proto}!https
RewriteRule ^(。*)$ https://%{HTTP_HOST} / $ 1(R = 301,L)

強制HTTP

要在您的網站上強制使用非HTTP連接,請使用以下代碼。

RewriteEngine On
RewriteCond%{HTTP:X-Forwarded-Proto} ^ https $
RewriteRule。* http://%{HTTP_HOST}%{REQUEST_URI}

將域重定向到子目錄

您可以使用以下規則將域重定向到子目錄:

RewriteCond%{HTTP_HOST} ^ example.com $
RewriteCond%{REQUEST_URI}!^ / sub-directory-name /
RewriteRule(。*)/ subdir / $ 1

將主域重定向到另一個域

如果您有兩個或更多域名,例如abc.com,abc.net和abc.org等,並希望所有域名重定向到一個域,那麼您可以在您想要的域中添加重定向規則重定向到您的主域名:

重定向301 / http://www.abc.com/

在abc.net和abc.org中添加上述規則,使其重定向到abc.com。

刪除Query_String

通過在最後添加查詢字元串來訪問您的網站URL時,將顯示相同的內容。例如,myblog.com也可以通過myblog.com/?my=query訪問。如果搜索引擎抓取了這些查詢字元串,則會產生重複內容。

解決此問題的簡單方法是使用以下代碼重定向和刪除查詢字元串:

RewriteCond%{THE_REQUEST} ^(A-Z)+ /.* HTTP
RewriteCond%{QUERY_STRING}!^ $
RewriteRule。* https://www.mywebsite.com% {REQUEST_URI}? (R = 301,L)

根據客戶端設置語言變數

對於多語言WordPress網站,將訪問者重定向到其首選語言的最佳方法是檢測其瀏覽器語言並通過在htaccess文件中添加以下規則將其重定向到該語言:

RewriteCond%{HTTP:Accept-Language} ^。*(de | es | fr | it | ja | ru | en)。* $(NC)
RewriteRule ^(。*)$ – (env = prefer-language:%1)

注意:許多多語言WordPress插件都是自己做的。

將WordPress Feed重定向到Feedburner

WordPress默認為帖子生成RSS源,但如果您想使用Feedburner之類的第三方Feed生成器,請使用以下代碼:

RewriteEngine On
RewriteBase /
RewriteCond%{REQUEST_URI} ^ / feed .gif $
RewriteRule。* – (L)

RewriteCond%{HTTP_USER_AGENT}!^。*(FeedBurner | FeedValidator)(NC)
RewriteRule ^ feed /?.*$ http://feeds.feedburner.com/apache/htaccess(L,R = 302)

RewriteCond%{REQUEST_FILENAME}! – f
RewriteCond%{REQUEST_FILENAME}!-d
重寫規則。 /index.php(L)

使用htaccess規則優化WordPress速度

可以在htaccess文件中設置許多緩存規則和WordPress資產的到期時間。這意味著您實際上可以添加規則來優化您的WordPress網站的速度。

設置瀏覽器緩存的過期標題

今天許多瀏覽器暫時緩存諸如CSS,JS,HTML和一些媒體文件之類的元素,例如經常訪問的網站的圖標。如果WordPress網站上的這些元素不經常更改,那麼您可以使用以下規則增加這些資產的到期時間:

ExpiresActive on
        ExpiresDefault「訪問加1個月」
    #CSS
        ExpiresByType text / css「access plus 1 year」
    #數據交換
        ExpiresByType應用程序/ json「訪問加0秒」
        ExpiresByType application / xml「access plus 0 seconds」
        ExpiresByType text / xml「access plus 0 seconds」
    #Favicon(無法重命名!)
        ExpiresByType image / x-icon「訪問加1周」
    #HTML組件(HTC)
        ExpiresByType text / x-component「access plus 1 month」
    #HTML
        ExpiresByType text / html「access plus 0 seconds」
    #JavaScript
        ExpiresByType應用程序/ javascript「訪問加1年」
    #清單文件
        ExpiresByType application / x-web-app-manifest + json「access plus 0 seconds」
        ExpiresByType text / cache-manifest「access plus 0 seconds」
    #Media
        ExpiresByType音頻/ ogg「訪問加1個月」
        ExpiresByType image / gif「access plus 1 month」
        ExpiresByType image / jpeg「access plus 1 month」
        ExpiresByType image / png「access plus 1 month」
        ExpiresByType視頻/ mp4「訪問加1個月」
        ExpiresByType視頻/ ogg「訪問加1個月」
        ExpiresByType視頻/ webm「訪問加1個月」
    #Web供稿
        ExpiresByType應用程序/ atom + xml「訪問加1小時」
        ExpiresByType應用程序/ rss + xml「訪問加1小時」
    #Web字體
        ExpiresByType應用程序/ font-woff2「訪問加1個月」
        ExpiresByType應用程序/ font-woff「訪問加1個月」
        ExpiresByType application / vnd.ms-fontobject「access plus 1 month」
        ExpiresByType application / x-font-ttf「access plus 1 month」
        ExpiresByType字體/ opentype「訪問加1個月」
        ExpiresByType image / svg + xml「access plus 1 month」

啟用Gzip壓縮

GZIP是一種壓縮方法,已經獲得了廣泛的普及,並已成為許多WordPress緩存插件的標準壓縮方法。它壓縮文件並創建要使用的臨時文件。

如果要在WordPress網站中手動啟用GZIP壓縮,請將以下規則添加到htaccess文件中:

#壓縮HTML,CSS,JavaScript,文本,XML和字體
  AddOutputFilterByType DEFLATE application / javascript
  AddOutputFilterByType DEFLATE application / rss + xml
  AddOutputFilterByType DEFLATE application / vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application / x-font
  AddOutputFilterByType DEFLATE application / x-font-opentype
  AddOutputFilterByType DEFLATE application / x-font-otf
  AddOutputFilterByType DEFLATE application / x-font-truetype
  AddOutputFilterByType DEFLATE application / x-font-ttf
  AddOutputFilterByType DEFLATE application / x-javascript
  AddOutputFilterByType DEFLATE application / xhtml + xml
  AddOutputFilterByType DEFLATE application / xml
  AddOutputFilterByType DEFLATE font / opentype
  AddOutputFilterByType DEFLATE font / otf
  AddOutputFilterByType DEFLATE font / ttf
  AddOutputFilterByType DEFLATE image / svg + xml
  AddOutputFilterByType DEFLATE image / x-icon
  AddOutputFilterByType DEFLATE text / css
  AddOutputFilterByType DEFLATE text / html
  AddOutputFilterByType DEFLATE text / javascript
  AddOutputFilterByType DEFLATE text / plain
  AddOutputFilterByType DEFLATE text / xml
  #刪除瀏覽器錯誤(僅限真正的舊版瀏覽器)
  BrowserMatch ^ Mozilla / 4 gzip-only-text / html
  BrowserMatch ^ Mozilla / 4 .0(678)no-gzip
  BrowserMatch bMSIE!no-gzip!gzip-only-text / html
  標題附加Vary User-Agent

使用WordPress htaccess文件增加最大上載文件大小

此規則將允許您在WordPress網站上上傳更大的文件。默認情況下,許多WP站點的上傳文件大小約為10MB到25MB,但如果要增加它,請使用以下代碼:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

提高您的WordPress網站的安全性

在安全性方面,您可以添加htaccess規則以限制用戶對文件或URL的訪問,阻止對文件的訪問等等。

保護.htaccess

攻擊者可以通過在您的htaccess文件中注入惡意規則來刪除整個網站,因此保護它非常重要。添加以下規則以拒絕對htaccess文件的所有訪問:

訂單允許,否認
否認所有人
滿足所有

限制對WordPress管理面板的訪問

WordPress網站容易受到攻擊,例如暴力攻擊,試圖登錄您的網站管理員。如果要完全限制對儀錶板的訪問,請創建一個新的htaccess文件並將其放在/ wp-admin文件夾中並添加以下代碼。

#通過IP限制登錄和管理

命令拒絕,允許
否認所有人
允許來自xx.xx.xx.xx

注意:xx.xx.xx.xx是您要whitelabel的IP地址。只有此IP地址才能登錄您的網站。

密碼保護單個文件

您可以使用以下htaccess規則使用密碼保護文件。

AuthName「提示」
AuthType Basic
AuthUserFile /web/mywebsite.com/.htpasswd
需要有效用戶

安全重要文件

您應該保護其他關鍵文件,例如php.ini,wp-config.php,為此,請添加以下規則來限制訪問:

命令拒絕,允許
拒絕所有人

保護/ wp內容/

文件夾/ wp-content包含主題文件,圖像和緩存文件。攻擊者將嘗試訪問此文件夾中的文件並注入惡意代碼。使用此代碼將其保留:

命令拒絕,允許
拒絕所有人

允許所有人

阻止IP地址

如果您知道攻擊者的IP地址(您可以從您的網站日誌中獲取IP),則可以使用以下htaccess規則阻止它:

訂單允許,否認
否認自123.456.78.9
允許所有人

拒絕訪問某些文件

就像阻止特定的IP地址一樣,您可以使用以下代碼阻止對特定文件的訪問:

訂單允許,否認
否認所有人

防止文件圖像/文件熱鏈接和帶寬竊取

圖像和文件可能被盜,可以生成針對圖像和文件URL的多個請求。此類攻擊會增加您的帶寬使用量,並可能會降低您的網站速度。要防止熱鏈接,請使用以下htaccess規則:

RewriteEngine On
RewriteBase /
RewriteCond%{HTTP_REFERER}!^ $
RewriteCond%{HTTP_REFERER}!^ http://(www 。)?mywebsite .com /.*$(NC)
RewriteRule 。(gif | jpg | swf | flv | png)$ / feed /(R = 302,L)

結論

WordPress htaccess文件無疑是WordPress目錄中最重要的文件之一。以正確的方式使用它將提高您的網站的安全級別,並幫助它加快速度。除了安全性和速度之外,htaccess文件還有強大的規則來更改WordPress網站的默認行為。這就是為什麼我建議每個WordPress開發人員更深入地了解可以在此文件中使用的每個規則。

如果您有任何疑問或想要針對任何具體內容請求規則,請使用下面的評論部分,我會儘快回復您!

帖子WordPress .htaccess文件:它是什麼以及你可以用它做什麼!首先出現在WPblog上。

相關文章