20個有用的Apache '.htaccess'技巧來保護和自定義網站
Apache是世界上最流行的Web伺服器之一,數百萬個網站使用它向用戶提供內容。Apache最強大的功能之一是它能夠使用.htaccess檔案來自定義和保護網站。.htaccess檔案是一個簡單的文字檔案,可以放置在網站的根目錄中,以控制伺服器行為的各個方面。在本文中,我們將介紹20個有用的Apache .htaccess技巧,可以幫助您保護和自定義您的網站。
密碼保護目錄
如果您想用密碼保護網站上的某個目錄,可以使用以下.htaccess程式碼:
AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/passwords/file Require valid-user
將/path/to/passwords/file替換為您包含加密密碼的檔案的路徑。您可以使用htpasswd之類的工具生成此檔案。當用戶嘗試訪問受保護的目錄時,系統會提示他們輸入使用者名稱和密碼。
按IP地址阻止訪問者
如果您想阻止來自某些IP地址或範圍的訪問者,可以使用以下.htaccess程式碼:
Order Allow,Deny Deny from 123.45.67.89
將123.45.67.89替換為您要阻止的IP地址。您還可以使用萬用字元來阻止一系列IP地址:
Order Allow,Deny Deny from 123.45.67.89
這將阻止所有以123.45.67.89開頭的IP地址。
將訪問者重定向到新URL
如果您想將訪問者從一個URL重定向到另一個URL,可以使用以下.htaccess程式碼:
Redirect 301 /old-url.html http://www.example.com/new-url.html
將/old-url.html替換為您要重定向的URL,將http://www.example.com/new-url.html替換為您要重定向到的URL。這將向訪問者的瀏覽器傳送永久重定向(HTTP 301)。
強制使用HTTPS
如果您想強制訪問者使用HTTPS而不是HTTP,可以使用以下.htaccess程式碼:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
這將把所有HTTP請求重定向到HTTPS。在啟用此功能之前,請確保您的伺服器上已安裝SSL證書。
阻止目錄列表
如果您想阻止Apache在不存在索引檔案時列出目錄的內容,可以使用以下.htaccess程式碼:
Options -Indexes
這將向嘗試訪問目錄的任何訪問者返回403禁止錯誤。
設定自定義錯誤頁面
如果您想為各種HTTP錯誤提供自定義錯誤頁面,可以使用以下.htaccess程式碼:
ErrorDocument 404 /404.html ErrorDocument 500 /500.html
將/404.html和/500.html替換為您自定義錯誤頁面的URL。您還可以使用它將訪問者重定向到任何HTTP錯誤程式碼的自定義錯誤頁面。
使用Gzip壓縮檔案
如果您想使用Gzip壓縮網站檔案以減小其大小並加快頁面載入時間,可以使用以下.htaccess程式碼:
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript </IfModule>
這將使用Gzip壓縮網站上的所有基於文字的檔案(HTML、CSS、JavaScript等)。
阻止訪問特定檔案型別
如果您想阻止訪問者訪問網站上的某些檔案型別(例如.sql或.conf檔案),可以使用以下.htaccess程式碼:
<FilesMatch "\.(sql|conf)$"> Order allow,deny Deny from all </FilesMatch>
將(sql|conf)替換為您要阻止的副檔名的管道分隔列表。這將向嘗試訪問具有這些副檔名的檔案的任何訪問者返回403禁止錯誤。
限制檔案上傳大小
如果您想限制訪問者可以上傳到您網站的最大檔案大小,可以使用以下.htaccess程式碼:
php_value upload_max_filesize 10M php_value post_max_size 10M
將10M替換為您要允許的最大檔案大小。這將把檔案上傳和POST請求限制到該大小。
阻止訪問特定使用者代理
如果您想阻止某些使用者代理(例如網路爬蟲或惡意機器人)訪問您的網站,可以使用以下.htaccess程式碼:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} bad-bot [NC]
RewriteRule .* - [F]
將bad-bot替換為您要阻止的使用者代理。這將向使用該使用者代理的任何訪問者返回403禁止錯誤。
將非www重定向到www
如果您想將訪問您網站時沒有“www”字首的訪問者重定向到帶有字首的版本,可以使用以下.htaccess程式碼:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
將example.com替換為您自己的域名。這將向訪問者的瀏覽器傳送永久重定向。
停用伺服器簽名
如果您想隱藏HTTP標頭中關於伺服器的版本號和其他資訊,可以使用以下.htaccess程式碼:
ServerSignature Off
這將阻止Apache在HTTP標頭中顯示伺服器簽名信息。
限制對特定HTTP方法的訪問
如果您想將對您網站的訪問限制為僅某些HTTP方法(例如GET和POST),可以使用以下.htaccess程式碼:
<LimitExcept GET POST> Order Deny,Allow Deny from all </LimitExcept>
這將阻止除GET和POST之外的所有HTTP方法的訪問。
阻止訪問特定推薦來源
如果您想阻止來自某些推薦來源(例如垃圾郵件網站或惡意域名)對您網站的訪問,可以使用以下.htaccess程式碼:
RewriteEngine on
RewriteCond %{HTTP_REFERER} spammydomain\.com [NC]
RewriteRule .* - [F]
將spammydomain.com替換為您要阻止的域名。這將向來自該域名的任何訪問者返回403禁止錯誤。
為特定副檔名設定MIME型別
如果您想為網站上的某些副檔名設定特定的MIME型別,可以使用以下.htaccess程式碼:
AddType text/html .html AddType application/json .json
將.html和.json替換為您要設定MIME型別的副檔名。這將確保為這些檔案型別在HTTP標頭中傳送正確的MIME型別。
停用盜鏈
如果您想阻止其他網站直接連結到您網站上的影像或其他媒體(也稱為“盜鏈”),可以使用以下.htaccess程式碼:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|png)$ - [F]
將example.com替換為您自己的域名,並將(gif|jpg|jpeg|bmp|png)替換為您要保護的副檔名的管道分隔列表。這將向嘗試盜鏈您網站上影像或其他媒體的任何訪問者返回403禁止錯誤。
自定義錯誤頁面
如果您想自定義Apache顯示的預設錯誤頁面(例如404未找到或500內部伺服器錯誤),可以使用以下.htaccess程式碼:
ErrorDocument 404 /404.html ErrorDocument 500 /500.html
將404.html和500.html替換為您自己的錯誤頁面的名稱。這將顯示您的自定義錯誤頁面而不是預設的Apache錯誤頁面。
重定向到HTTPS
如果您想將訪問者重定向到網站的安全HTTPS版本,可以使用以下.htaccess程式碼:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
這將把所有HTTP請求重定向到HTTPS。
防止目錄列表
如果您想阻止訪問者檢視網站上目錄中的檔案列表,可以使用以下.htaccess程式碼:
Options -Indexes
這將向嘗試檢視目錄列表的任何訪問者返回403禁止錯誤。
新增自定義標頭
如果您想向網站上的所有請求新增自定義HTTP標頭,可以使用以下.htaccess程式碼:
Header set X-Frame-Options "SAMEORIGIN" Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options "nosniff"
將X-Frame-Options、X-XSS-Protection和X-Content-Type-Options替換為您要設定的標頭的名稱及其相應的值。這將向網站上的所有HTTP響應新增這些標頭。
結論
總之,.htaccess檔案是一個強大的工具,可以用來以多種方式保護和自定義您的網站。透過本文討論的20個技巧,您可以阻止惡意流量、最佳化網站以供搜尋引擎使用,並增強使用者體驗。但是,在更改.htaccess檔案時務必謹慎,因為一個錯誤可能會導致錯誤,甚至可能導致您的網站停止執行。在進行任何更改之前,始終備份您的.htaccess檔案,並在實施任何新程式碼後徹底測試您的網站。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP