Category: Apache

.htaccess 轉址

.htaccess 可以改變 Apache 對目錄的設定, 其中一個十分常用的地方是轉址, 以下是 .htaccess 常用轉址例子:301 永久轉址: 302 臨時轉址 將檔案轉到指定檔案位置 將沒有 www 的網址轉到 www 開頭網址: 將 www 開頭的網址轉到沒有 www 網址: 將所有不是 new-domain.com 轉到 new-domain.com

[Perl Script] – 自動刪除 Apache 舊記錄檔

上一篇文章 Apache Log Rotate 設定 講述了 Apache 輪替記錄檔的方法, 但如果舊日誌一直不理的話, 同樣佔據碟碟空間, 因為 Apache 不會刪除舊記錄檔, 而且將新記錄寫入新建立的檔案, 以下 Perl Script 可以自動刪除舊記錄檔, 只要設定好記錄檔目錄, 名稱後, 放到 crontab 執行便可以了。 這個 Perl Script 會掃瞄記錄檔目錄, 並查看檔案名稱為是 access …

Apache Log Rotate 設定

Apache log 裡面包含有很多有用資訊, 包括偵測攻擊行為及正常存取量等, 但如果一直不理會記錄檔的話, 會佔用很多硬碟空間, 所以設定 log rotate 是必須的, Apache 內建 rotatelogs 工具可以做 log rotate, 實現方法如下:1. 開啟 httpd.conf, 找到 CustomLog 及 ErrorLog 的設定行.2. 例如原來 CustomLog 及 ErrorLog 寫成: CustomLog …

Apache 2.4 安裝 mod_evasive

在 Apache 2.4 編譯 mod_evasive 時遇到以下錯誤:mod_evasive20.c: In function ‘access_checker’: mod_evasive20.c:142: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:146: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:158: error: ‘conn_rec’ has no …

Apache 2.4 的 VirtualHost 設定

Apache 剛從 2.2 升級到 2.4, 在 Apache 2.4 的 VirtualHost 設定不同以前, 新語法更簡單易用:舊設定方法: <VirtualHost 123.242.230.29>    ServerName testing.testing.com    DocumentRoot /var/www/html </VirtualHost>Apache 2.4 設定方法 <VirtualHost *:80>    ServerName testing.testing.com    DocumentRoot …

將 .htaccess 檔案改名

.htaccess 可以改變很多網站的設定,這也造成一個安全性的問題,因為有心人都會估計到網站可能會用 .htaccess,如果未有對 .htaccess 進行權限設定,所有人都可以瀏覽 .htaccess 的內容。除了變更權限外,也可以設定 Apache 讀取其他檔案名稱,那麼其他人便不會那麼容易知道設定檔的位置,但這個方法需要編輯 httpd.conf 才可以實現。在 Apache 建立的 virtualhost 裡面,只要加入 “AccessFileName” 便可以自訂設定檔的名稱,例如:AccessFileName .htaccess.hidden以上語句會指定 .htaccess.hidden 代替原本的 .htaccess 檔案。

PHP 及 .htaccess 實現阻擋 ip

如果發現某些 ip 的用戶在網站上搗亂,可以將他/她的 ip 封殺,這不但可以停止搗亂行為,也可以減少主機的資源浪費及頻寬,以下介紹透過 PHP 及 Apache 的 .htaccess 的實現方法。PHP 如果要阻擋的 ip 不多,可以直接加上以下一行到程式頂端: 以上程式碼很簡單,只要檢查訪客的 ip 是否 192.168.1.101,如果正確則結束程式罷了,但這樣的問題是當要阻擋的 ip 數量增多時,需要每次都在以上程式碼上加上 ip,要維護很不方便。以下的方法是使用文字檔儲存了要阻擋的 ip,每一行一筆資料,檔案為 ban_ip_list.dat,實現方法如下:以上第一行是從 ban_ip_list.dat 讀入每一行資料,並儲存到 $banned 陣列內,然後用 in_array() 檢查訪客的 ip …

透過 htaccess 設定 Character Set

要設定網站的 Character Set,除了在 httpd.conf 設定外,還可以在 .htaccess 對個別網站設定,格式如下:AddDefaultCharset utf-8以上這行便會設定網站預設使用 utf-8 編碼,如果只想對特定檔案設定 Character Set,可以這樣做:AddCharset utf-8 .html .htm .css .js .xml .json .rss這樣就可以設定 .html, .htm, .css, .js, .xml, .json 及 .rss 的預設 Character …

Apache 防止 DDoS 攻擊

DDoS (distributed denial-of-service) 及 DoS (denial-of-service) 在網路上十分常見,而 DoS 攻擊所傳送的請求跟正常的請求一樣,分別在於每秒鐘發出大量請求到伺服器,使伺服器的負載增加,最常見的情況是伺服器暫停服務。而 mod_evasive 則是一個預防 Apache 遭受 DDos 攻擊的模組,可以防止同一個 IP 對相同 URI 發出的大量請求,可設定的選項有:– 限制同一個 IP 在一定秒數內請求一個頁面或檔案的次數。 – 限制同一個 IP 一秒內只可發出 50 個請求。 – 設定被禁止的 …

通過 Apache 實現用戶認證

建立 .htacces 檔案 基本(Basic) 驗證是目前最為廣泛使用的方法,以下例子會替 /var/www/html/dir_protect 加入密碼保護,請先在這目錄建立一個 .htaccess 的檔案,然後加入以下內容:以上段落的意思為:AuthName “Member Only” — 密碼保錄目錄名稱,這裡可自行修改。 AuthType Basic — 使用基本驗證方法。 AuthUserFile /var/www.html/dir_protect/.htpasswd — 儲存登入帳號的檔案。 — 限制所有 GET 及 POST 方法。 require valid-user — …