.htaccess 是一個設(shè)定檔,讓你可以控制該路徑下的檔案及資料夾,以及所有子目錄。這個檔案名稱是由 hypertext access 而來,能為大多數(shù)的服務器環(huán)境使用。
對于許多 WordPress 使用者來說,他們第一次看到 .htaccess 檔案應該是在自定他們網(wǎng)站的固定網(wǎng)址時。為了使用更美觀的鏈結(jié),而不是預設(shè)的鏈結(jié)格式(例如:http://free.com.tw/sample-post/
而不是 http://free.com.tw/?p=123 ),我們必須將以下程式碼加入 .htaccess 檔案:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
如果 .htaccess 不存在,你可以自己建立一個然后將它上傳。你需要做的只有建立一個空白的文字檔,將它儲存為 .htaccess 然后上傳到網(wǎng)站的根目錄。請確認在檔案的開頭有一個點,是不可漏掉的。
你也必須確認你的 .htaccess 檔案是服務器可寫入的,WordPress 才能將適當?shù)某淌酱a加入你的 .htaccess 。WordPress.org 建議把檔案權(quán)限設(shè)定為 644 。
.htaccess 檔案不僅用于固定網(wǎng)址,該檔案也能強化網(wǎng)站安全。數(shù)以百萬的 WordPress 用戶利用它來保護網(wǎng)站免于垃圾郵件發(fā)送者、黑客和其他已知的威脅。
在本文裡,我會分享一些用于 .htaccess 的程式碼片段,可以強化你的網(wǎng)站安全。相信你會找到一些對你有幫助的程式碼。
你可能也注意到上面固定網(wǎng)址的 .htaccess 程式碼是包覆于 #BEGIN WordPress 及 #END WordPress 裡。WordPress 可以更新這個標簽裡的程式碼,你必須把要新增的程式碼片段放置于你的 .htaccess
檔案的頂部或底部(在 #BEGIN WordPress 之前或 #END WordPress 之后)。
請注意…
.htaccess 是 WordPress 裡個性倔強的檔案,只要其中任何一個字符出錯,檔案就會出現(xiàn)錯誤。當錯誤發(fā)生時,它通常會影響到整個網(wǎng)站的運作,最重要的是你必須確保輸入 .htaccess 的程式碼沒有
問題。
在開始前,備份一下你當前使用的 .htaccess 檔案吧!將它保存到你電腦裡安全的位置。如果可以,也能在云端硬碟備份一份。
無論何時更新了你服務器上的 .htaccess 檔案,記得回到網(wǎng)站重新整理一下,看看網(wǎng)站是不是還能正常運作。不要跳過這個步驟,因為確認網(wǎng)站運作正常是至關(guān)重要的一個步驟。如果你的網(wǎng)站給你一個
白畫面,立即回復、還原 .htaccess 修改前的上個步驟。
如果你無法還原你的備份,那麼將服務器上的 .htaccess 刪除,然后建立一個空白的 .htaccess 檔案并將它上傳。這將協(xié)助你使你的網(wǎng)站回復連線;當你的網(wǎng)站出現(xiàn)問題,這顯然是最重要的一步。
1. 保護 .htaccess
既然 .htaccess 擁有你整個網(wǎng)站的控制權(quán),保護它遠離不相關(guān)人士就顯得很重要。以下的程式碼將讓黑客無法存取你的 .htaccess 檔,只需要透過 FTP 來修改 .htaccess 檔案(或是控制臺的檔案管理)。
order allow,deny
deny from all
satisfy all
2. 保護 WP-Config.php
另一個重要的檔案是 wp-config.php。這個檔案裡包含資料庫的登入資訊,以及其他的系統(tǒng)設(shè)定。因此,明確的作法是禁止任何人訪問它。
order allow,deny
deny from all
3. 保護 /Wp-Content/
wp-content 資料夾也是 WordPress 相當重要的一部分,在這個資料夾裡包含了你的佈景主題、外掛、上傳的媒體檔案(圖片、影片)及快取檔案。
有鑒于此,這通常也是黑客下手的目標。當垃圾郵件發(fā)送者試圖破壞你的老網(wǎng)站,他必須將郵件程式傳到你的上傳資料夾。然后使用你的服務器來寄送垃圾郵件;這麼做會使你的服務器被列入垃圾郵件名單。
你可以透過創(chuàng)建一個獨立的 .htaccess 檔案來解決類似問題:
Order deny,allow
Deny from all
Allow from all
你必須將 .htaccess 檔案獨立上傳到 wp-content 主目錄,例如 www.yourwebsite.com/wp-content/。這麼做只會允許 XML、CSS、JPG、JPEG、PNG、GIF 和 JavaScript 被上傳到媒體資料夾,其餘的檔案類型將被拒絕。
4. 保護 Include-Only 檔案
某些檔案是絕不用讓使用者存取的。你可以加入以下程式碼,來阻擋使用者存取這些檔案:
# Block the include-only files.
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]
5. 限制存取 WordPress 控制臺
另一個黑客覬覦的目標是 WordPress 控制臺。如果他們獲取了存取該區(qū)域的權(quán)限,他們就可以在你的網(wǎng)站上為所欲為。
確保 WordPress 控制臺更加安全,建立一個 .htaccess 檔案并加入以下程式碼:
# Limit logins and admin by IP
order deny,allow
deny from all
allow from 12.34.56.78
請務必將 12.34.56.78 更改為你的 IP 位址(你可以在 What is My IP? 找到你的 IP Address),然后將它上傳到網(wǎng)站的 /wp-admin/ 路徑下,例如 www.yourwebsite.com/wp-admin/ 。
只有你能夠存取 WordPress 控制臺,其他人將會被阻擋在外。
其他的管理員或作者的 IP 可以加在后面,你可以在 allow from 后面加入其他 IP,不同的 IP 間使用半形逗號來區(qū)隔,例如:
allow from 12.34.56.78, 98.76.54.32, 19.82.73.64
6. 禁止某人進入你的網(wǎng)站
如果你知道某個來者不善的 IP 位址,你可以使用以下的程式碼將它拒于網(wǎng)站之外。舉例來說,你可以封鎖某些留下垃圾留言或是嘗試存取你 WordPress 控制臺的使用者。
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
7. 將使用者傳送到維護頁面
一些維護外掛像是 Ultimate Maintenance Mode 和 Mainteance 相當實用,當你在維護網(wǎng)站時,可以顯示一個暫時的頁面給使用者,或是在你更新網(wǎng)站時。
不幸的是,維護外掛只有在你的網(wǎng)站運作正常時才起得了作用。
如果你想未雨稠繆,我建議你建立一個基本的 .html 頁面,將它命名為 maintenance.html 來提醒使用者目前網(wǎng)站遭遇一些問題,但會在短時間內(nèi)恢復連線。當你的網(wǎng)站掛掉時,只要將以下程式碼加入
你的 .htaccess 檔案,就能將所有流量引導至維護畫面。
RewriteEngine on
RewriteCond REQUEST_URI} !/maintenance.html$
RewriteCond REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L]
你必須要為你的網(wǎng)站來自定上方程式碼。變更上方的檔案名稱,來符合你的維護頁面路徑,你也必須加入你的 IP 位址,以便在維護狀態(tài)時不會被引導至維護頁面(讓你可以繼續(xù)調(diào)整網(wǎng)站),以上代碼
使用 302 轉(zhuǎn)址確保維護頁面不會被搜尋引擎索引。
8. 禁止瀏覽目錄
讓未經(jīng)授權(quán)的使用者瀏覽目錄下的檔案或資料夾是相當危險的一件事情。如要禁止訪問你網(wǎng)站的目錄,只要在你的 .htaccess 加入以下程式碼即可:
# disable directory browsing
Options All -Indexes
9. 允許瀏覽器快取
當啟動瀏覽器快取功能后,將允許使用者從你的網(wǎng)站儲存元件,而無須重新下載。
它用于設(shè)計元素,例如 CSS 樣式表和其它媒體內(nèi)容,例如圖片。這是一個實用的技巧,因為當圖片上傳到網(wǎng)站后,很少會再次更新。瀏覽器快取能讓訪客直接讀取儲存在他們電腦裡的圖片,而不用從你
的服務器下載,節(jié)省頻寬、也提升了頁面載入速度。
啟用瀏覽器快取,你需要做的就是把以下程式碼加入 .htaccess 檔案:
## EXPIRES CACHING ##
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"
## EXPIRES CACHING ##
10. 重新導向一個網(wǎng)址
301 重新導向讓你可以通知搜尋引擎該鏈結(jié)已經(jīng)重新移到新的路徑。它可以被用來重新導向一個網(wǎng)址、資料夾,甚至是一整個網(wǎng)站。
因此,它常被用于網(wǎng)址發(fā)生變化時,例如變更網(wǎng)域名稱、變更固定網(wǎng)址結(jié)構(gòu),或是變更頁面名稱(例如將頁面名稱從 my-news 變成 mygreatnews)。
要重新導向某個路徑,你需要做的就是加入以下程式碼:
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. 禁止直接連結(jié)圖片
直接連結(jié)的意思是某人直接取用你的圖片鏈結(jié),然后將它分享到其他網(wǎng)頁上。這常發(fā)生在討論區(qū),但大多數(shù)的網(wǎng)站擁有者仍然會這麼做。直接連結(jié)可能對你的網(wǎng)站帶來負面影響,包括使你的網(wǎng)站變慢,
也會讓你的頻寬費用增加。
你可以禁止除了你的網(wǎng)站外的網(wǎng)站直接連結(jié)圖片,將以下程式碼加入即可。請確認將以下網(wǎng)址更改為你的網(wǎng)址。
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://upload.chinaz.com/2014/0718/1405671492557.png [NC,R,L]
當其他人試圖從其他網(wǎng)址瀏覽你的圖片時,他們將會看到禁止圖片,而這圖片可以變更為任何你想要的圖(在上面的最后一行設(shè)定圖片路徑)。
禁止直接連結(jié)可能導致一些 RSS 閱讀器無法顯示你 RSS Feed 裡的圖片。
希望以上的 .htaccess 檔案技巧對你有所助益。如你所見,它是一個可以完成許多工作的設(shè)定檔。
更多信息請查看IT技術(shù)專欄