.htaccess文件是一個配置文件,它使您可以控制當前目錄以及所有子目錄中的文件和文件夾。文件名是用於超文本訪問的縮寫名稱,大多數服務器都支持。

對於許多WordPress用戶而言,他們第一次自定義.htaccess文件是在他們自定義網站的永久鏈接設置時。為了獲得我們都知道和喜歡的漂亮的永久鏈接(例如https://www.elegantthemes.com/sample-post/而不是https://www.elegantthemes.com/?p=123),我們需要添加一些內容像這樣對.htaccess文件:

 

01
02
03
04
05
06
07
08
09
10
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

 

如果不存在.htaccess文件,則可以自己創建一個文件並上傳。您要做的就是創建一個空白文本文件,將其另存為.htaccess並將其上傳到WordPress安裝的根目錄。確保在文件名的開頭包含句點(即,將文件另存為.htaccess而不是htaccess)。

您還需要確保您的.htaccess文件可寫,以便WordPress可以將適當的永久鏈接代碼添加到您的.htaccess文件中。WordPress.org 建議 .htaccess文件的文件權限為644。

Htaccess文件被隱藏

.htaccess文件是一個隱藏文件。因此,您需要確保將FTP客戶端或文件管理器配置為顯示目錄中的文件。

.htaccess文件不僅用於永久鏈接。該文件以增強網站安全性的能力而聞名。數以百萬計的WordPress用戶使用.htaccess文件來保護其網站免受垃圾郵件發送者,黑客和其他已知威脅的侵害。

在本文中,我想與您分享.htaccess的一些摘要,以確保您的網站安全。我還提供了一些其他片段,我相信您會發現它們很有用。

你可以在我上面的代碼開頭永久例子已經注意到#BEGIN WordPress的,並結束與#END WordPress的。WordPress可以更新放置在這些標籤內的任何代碼。因此,您應該添加這篇文章在您的.htaccess文件的頂部或底部所示的片段(即之前#開頭的WordPress或之後#END WordPress的)。

小心

.htaccess文件是使用WordPress時遇到的最易生氣的文件之一。只需一個字符就可以使代碼不正確。發生這種情況時,通常會導致整個網站癱瘓。因此,將本文中提到的代碼正確複製到您自己的.htaccess文件中至關重要。

即使您保持謹慎,也可能發生事故,而且事故經常發生。

使用.htaccess文件時,請不要走捷徑。在開始之前,請備份當前工作版本的.htaccess。將其存儲在計算機上的安全位置,如果可能,請存儲在其他位置,例如USB閃存驅動器或云存儲上。

每當您更新服務器上的.htaccess文件時,請刷新您的網站以查看您的網站是否仍然有效。不要跳過此步驟,因為至關重要的是您要驗證網站是否仍在正常工作。如果您的網站返回黑屏,請立即將其上傳到存在錯誤的版本中,以還原為已保存的.htaccess副本。

如果找不到備份文件,請上傳空白的.htaccess文件或完全刪除.htaccess文件。這將使您的網站恢復在線;當您的網站離線時,這顯然是您的優先事項。

.htaccess不要冒險。始終備份。

1.保護.htaccess

由於.htaccess對您的整個網站有多少控制權,因此保護文件免受未經授權的用戶的訪問很重要。以下代碼段將阻止黑客訪問您的.htaccess文件。當然,您仍然可以自己通過FTP和託管控制面板的文件管理器來編輯文件。

 

01
02
03
04
05
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

2.保護WP-Config.php

另一個重要文件是wp-config.php。此配置文件包含WordPress數據庫的登錄信息以及其他重要的維護設置。因此,建議禁用對其的訪問。

 

01
02
03
04
<files wp-config.php>
order allow,deny
deny from all
</files>

3.保護/ Wp-Content /

wp-content目錄是WordPress網站最重要的區域之一。它是重要文件所在的位置,例如主題,插件,上傳的媒體(圖像和視頻)和緩存的文件。

因此,它是黑客的主要目標之一。去年,當垃圾郵件發送者設法破壞了我的一個舊網站時,他通過將郵件腳本上傳到我的上載文件夾來做到這一點。然後,他開始使用我的服務器發送垃圾郵件;隨後,我的服務器進入了垃圾郵件黑名單。

您可以通過創建一個單獨的.htaccess文件並向其中添加以下代碼來解決此類威脅:

 

01
02
03
04
05
Order deny,allow
    Deny from all
    <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
    Allow from all
    </Files>

 

然後,您需要將此單獨的.htaccess文件上傳到主wp-content目錄,即www.yourwebsite.com/wp-content/。這樣做將允許上載媒體文件,包括XML,CSS,JPG,JPEG,PNG,Gif和Javascript。所有其他文件類型將被拒絕。

4.阻止僅包含文件

有些文件永遠不需要用戶訪問。您可以通過將以下代碼添加到.htaccess文件中來阻止對這些文件的訪問:

 

01
02
03
04
05
06
07
08
09
10
# Block the include-only files.
<IfModule mod_rewrite.c>
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]
</IfModule>

5.限制訪問管理區域

黑客的另一個入口點是WordPress管理區域。如果他們能夠訪問此區域,則幾乎可以對您的網站進行任何操作。

為了使該區域更安全,請創建一個新的.htaccess文件,並將以下代碼添加到其中:

 

01
02
03
04
05
06
# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

 

確保將12.34.56.78更改為您自己的IP地址(您可以在「我的IP是什麼?」中找到您的IP地址)。然後將文件上傳到您網站的/ wp-admin /文件夾,即www.yourwebsite.com/wp-admin/。

這將允許您訪問WordPress管理區域,但將阻止其他所有人。

可以為其他管理員和人員添加其他IP地址。您可以通過添加其他允許行或在主要允許行中列出其IP地址,並使用逗號將它們分開來實現此目的。例如:

01
allow from 12.34.56.78, 98.76.54.32, 19.82.73.64

6.禁止某人訪問您的網站

如果您知道惡意方的IP地址,則可以使用下面的代碼段將其完全禁止訪問您的網站。例如,您可以禁止總是留下侮辱性評論的人或試圖訪問您的管理區域的人。

01
02
03
04
05
06
<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
</Limit>

7.將訪客發送到維護頁面

維護插件,例如終極維護模式維護,對於在開發網站或在後台工作以更新網站時向訪問者顯示臨時消息很有用。

不幸的是,如果您面對臭名昭著的WordPress White Death of Death,維護插件將無濟於事。僅當您的網站正常運行時,它們才能正常運行。

如果您想為最糟糕的情況做準備,建議您創建一個名為maintenance.html的基本HTML頁面,該頁面通知訪問者您當前遇到網站問題,但很快就會恢復在線狀態。當您的網站由於黑客入侵或“死亡白屏”而癱瘓時,只需將下面的代碼段添加到您的.htaccess文件中,即可將所有流量定向到maintenance.html上的郵件。

01
02
03
04
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

您需要為自己的網站配置以上代碼。將html文件名更改為第二行和第四行中您自己的維護文件的名稱和位置。您還需要在第三行添加自己的IP地址,以確保在向其他人顯示維護消息時可以訪問您的網站。該代碼使用302重定向確保維護頁面本身未編制索引。

8.禁用目錄瀏覽

允許未經授權的個人查看您的文件和文件夾可能是主要的安全風險。要禁用瀏覽目錄,只需將以下一小段代碼添加到您的.htaccess文件中:

01
02
# disable directory browsing
Options All -Indexes

9.啟用瀏覽器緩存

我最近在我的文章“ 使用這些簡單技巧優化WordPress網站 ”中討論了瀏覽器緩存。啟用後,瀏覽器緩存將允許訪問者從您的網頁中保存項目,因此無需再次下載。

它用於設計元素(例如CSS樣式表)和媒體項(例如圖像)。這是一種實用的解決方案,因為當有人將圖像上傳到網站時,很少會再次更新圖像。因此,瀏覽器緩存將允許訪問者加載保存在其計算機而非服務器上的圖像。這會減少帶寬並增加頁面加載時間。

要啟用瀏覽緩存,您所需要做的就是將此代碼添加到您的.htaccess文件中:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
 
## EXPIRES CACHING ##

10.重定向URL

301重定向允許您通知搜索引擎URL已永久移動到新位置。它們可用於重定向頁面,文件夾,甚至是全新的網站。

因此,只要頁面的URL更改,就使用它們。這可能是由於更改域,更改網站的永久鏈接結構或僅更改頁面標籤(例如,將文章的頁面標籤my-news更改為mygreatnews)。

要重定向位置,您需要做的就是添加一條帶有Redirect 301的行,然後是舊位置,然後是新位置。您可以在下面查看其在實際中的工作方式:

01
02
03
Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
Redirect 301 /oldfolder/page2.html /folder3/page7.html
Redirect 301 / http://www.mynewwebsite.com/

11.禁用熱鏈接

熱鏈接是一種做法,即有人通過直接鏈接到圖像URL來共享您網站中的圖像。它通常發生在論壇上,但是許多網站所有者仍然這樣做(這是一個錯誤,因為它意味著可以隨時從您的內容中刪除圖像)。熱鏈接可能會對您的網站產生負面影響。除了放慢網站速度之外,它還可以顯著增加託管公司的帶寬成本。

通過僅允許您自己的網站和您擁有的任何其他網站執行圖像文件,可以防止熱鏈接。將以下代碼添加到您的.htaccess文件中,以阻止其他人熱鏈接您的圖像。請務必用您自己的網站地址替換下面的URL。

01
02
03
04
05
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

現在,當某人在另一個URL上查看您的圖像時,將改為向他們顯示在最後一行代碼中表示的圖像。該圖像可以更改為您想要的任何圖像。

*請注意,禁用熱鏈接可能會導致某些RSS閱讀器在顯示RSS feed中的圖像時遇到問題。

希望您喜歡此.htaccess文件的提示和技巧列表。如您所見,它是一個通用的配置文件,可以用於許多事情。