.htaccess重寫、安全防禦、文件訪問權限

今天在《外刊IT評論》上看見了關於.htaccess的使用總結,以爲很不錯的,由於wp博客還有其餘的php的web服務站點好多都是用.htaccess來管理好比效率以及安全的問題,有必要來學習一下。javascript

1.時區設置

有些時候,當你在PHP裏使用date或mktime函數時,因爲時區的不一樣,它會顯示出一些很奇怪的信息。下面是解決這個問題的方法之一。就是設置你的服務器的時區。你能夠在這裏找到全部支持的時區的清單。php

  1. SetEnv?TZ?Australia/Melbourne

2. 搜索引擎友好的301永久轉向方法

爲何這是搜索引擎友好的呢?由於如今不少現代的搜索引擎都有能根據檢查301永久轉向來更新它現有的記錄的功能。css

  1. Redirect?301?http://www.aqee.net/home?http://www.aqee.net/

3. 屏蔽下載對話框

一般,當你下載東西的時候,你會看到一個對話框詢問你是保持這個文件仍是直接打開它。若是你不想看到這個東西,你能夠把下面的一段代碼放到你的.htaccess文件裏。html

  1. AddType?application/octet-stream?.pdf
  2. AddType?application/octet-stream?.zip
  3. AddType?application/octet-stream?.mov

4. 省去www前綴

SEO的一個原則是,確保你的網站只有一個URL。所以,你須要把全部的經過www的訪問轉向的非www,或者反這來。java

  1. RewriteEngine?On
  2. RewriteBase?/
  3. RewriteCond?%{HTTP_HOST}?^www.aqee.net?[NC]
  4. RewriteRule?^(.*)$?http://aqee.net/$1?[L,R=301]

5. 個性化Error頁面

對每一個錯誤代碼定製本身個性化的錯誤頁面。web

  1. ErrorDocument?401?/error/401.php
  2. ErrorDocument?403?/error/403.php
  3. ErrorDocument?404?/error/404.php
  4. ErrorDocument?500?/error/500.php

6. 壓縮文件

經過壓縮你的文件體積來優化網站的訪問速度。瀏覽器

  1. #?壓縮?text,?html,?javascript,?css,?xml:
  2. AddOutputFilterByType?DEFLATE?text/plain
  3. AddOutputFilterByType?DEFLATE?text/html
  4. AddOutputFilterByType?DEFLATE?text/xml
  5. AddOutputFilterByType?DEFLATE?text/css
  6. AddOutputFilterByType?DEFLATE?application/xml
  7. AddOutputFilterByType?DEFLATE?application/xhtml+xml
  8. AddOutputFilterByType?DEFLATE?application/rss+xml
  9. AddOutputFilterByType?DEFLATE?application/javascript
  10. AddOutputFilterByType?DEFLATE?application/x-javascript

7. 緩存文件

緩存文件是另一個提升你的網站訪問速度的好方法。緩存

  1. <FilesMatch?「.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$」>
  2. Header?set?Cache-Control?「max-age=2592000″
  3. </FilesMatch>

8. 對某些文件類型禁止使用緩存

而另外一方面,你也能夠定製對某些文件類型禁止使用緩存。安全

  1. #?顯式的規定對腳本和其它動態文件禁止使用緩存
  2. <FilesMatch?「.(pl|php|cgi|spl|scgi|fcgi)$」>
  3. Header?unset?Cache-Control
  4. </FilesMatch>

安全問題

下面的htaccess代碼可以提升你的web服務器的安全水平。圖片連接盜用保護很是有用,它能防止其餘人偷盜使用你的服務器上的圖片資源。服務器

1. 經過.htaccess放盜鏈

痛恨那些偷盜連接你的web服務器上的圖片資源而耗盡了你的帶寬的行爲嗎?試試這個,你能夠防止這種事情的發生。

  1. RewriteBase?/
  2. RewriteCond?%{HTTP_REFERER}?!^$
  3. RewriteCond?%{HTTP_REFERER}?!^http://(www.)?aqee.net/.*$?[NC]
  4. RewriteRule?.(gif|jpg|swf|flv|png)$?/feed/?[R=302,L]

2. 防黑客

若是你想提升網站的安全等級,你能夠去掉下面的幾行代碼,這樣能夠防止一些常見惡意URL匹配的黑客攻擊技術。

  1. RewriteEngine?On
  2. #?proc/self/environ??沒門!
  3. RewriteCond?%{QUERY_STRING}?proc/self/environ?[OR]
  4. #?阻止腳本企圖經過URL修改mosConfig值
  5. RewriteCond?%{QUERY_STRING}?mosConfig_[a-zA-Z_]{1,21}(=|\%3D)?[OR]
  6. #?阻止腳本經過URL傳遞的base64_encode垃圾信息
  7. RewriteCond?%{QUERY_STRING}?base64_encode.*(.*)?[OR]
  8. #?阻止在URL含有<script>標記的腳本
  9. RewriteCond?%{QUERY_STRING}?(<|%3C).*script.*(>|%3E)?[NC,OR]
  10. #?阻止企圖經過URL設置PHP的GLOBALS變量的腳本
  11. RewriteCond?%{QUERY_STRING}?GLOBALS(=|[|\%[0-9A-Z]{0,2})?[OR]
  12. #?阻止企圖經過URL設置PHP的_REQUEST變量的腳本
  13. RewriteCond?%{QUERY_STRING}?_REQUEST(=|[|\%[0-9A-Z]{0,2})
  14. #?把全部被阻止的請求轉向到403禁止提示頁面!
  15. RewriteRule?^(.*)$?index.php?[F,L]

3. 阻止訪問你的 .htaccess 文件

下面的代碼能夠阻止別人訪問你的.htaccess文件。一樣,你也能夠設定阻止多種文件類型。

  1. #?保護你的?htaccess?文件
  2. <Files?.htaccess>
  3. order?allow,deny
  4. deny?from?all
  5. </Files>
  6. #?阻止查看指定的文件
  7. <Files?secretfile.jpg>
  8. order?allow,deny
  9. deny?from?all
  10. </Files>
  11. #?多種文件類型
  12. <FilesMatch?「.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$」>
  13. Order?Allow,Deny
  14. Deny?from?all
  15. </FilesMatch>

4. 重命名 htaccess 文件

你能夠經過重命名htaccess文件來對其進行保護。

  1. AccessFileName?htacc.ess

5. 禁止目錄瀏覽

禁止服務器對外顯示目錄結構,反之亦然。

  1. #?禁止目錄瀏覽
  2. Options?All?-Indexes
  3. #?開放目錄瀏覽
  4. Options?All?+Indexes

6. 改變缺省的Index頁面

你能夠把缺省的 index.html, index.php 或 index.htm 改爲其它頁面。

  1. DirectoryIndex?business.html

7. 經過引用信息來阻止某些不歡迎的瀏覽者

  1. #?阻止來自某網站的用戶
  2. <IfModule?mod_rewrite.c>
  3. RewriteEngine?on
  4. RewriteCond?%{HTTP_REFERER}?scumbag.com?[NC,OR]
  5. RewriteCond?%{HTTP_REFERER}?wormhole.com?[NC,OR]
  6. RewriteRule?.*?-?[F]
  7. </ifModule>

8. 經過判斷瀏覽器頭信息來阻止某些請求

這個方法能夠經過阻止某些機器人或蜘蛛爬蟲抓取你的網站來節省你的帶寬流量。

  1. #?阻止來自某些特定網站的用戶
  2. <IfModule?mod_rewrite.c>
  3. SetEnvIfNoCase?^User-Agent$?.*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider
    |leacher|collector|grabber|webpictures)?HTTP_SAFE_BADBOT
  4. SetEnvIfNoCase?^User-Agent$?.*(libwww-perl|aesop_com_spiderman)?HTTP_SAFE_BADBOT
  5. Deny?from?env=HTTP_SAFE_BADBOT
  6. </ifModule>

9. 禁止腳本執行,增強你的目錄安全

    1. #?禁止某些目錄裏的腳本執行權限
    2. AddHandler?cgi-script?.php?.pl?.py?.jsp?.asp?.htm?.shtml?.sh?.cgi
    3. Options?-ExecCGI

轉:http://www.cnblogs.com/kenshinobiy/p/5058430.html

相關文章
相關標籤/搜索