.htaccess功能解析(轉(zhuǎn))

.htaccess重寫(xiě)、安全防護(hù)、文件訪(fǎng)問(wèn)權(quán)限

今天在《外刊IT評(píng)論》上看見(jiàn)了關(guān)于.htaccess的使用總結(jié),覺(jué)得很不錯(cuò)的,因?yàn)閣p博客還有其他的php的web服務(wù)站點(diǎn)好多都是用.htaccess來(lái)管理比如效率以及安全的問(wèn)題,有必要來(lái)學(xué)習(xí)一下。

1.時(shí)區(qū)設(shè)置

有些時(shí)候,當(dāng)你在PHP里使用date或mktime函數(shù)時(shí),由于時(shí)區(qū)的不同,它會(huì)顯示出一些很奇怪的信息。下面是解決這個(gè)問(wèn)題的方法之一。就是設(shè)置你的服務(wù)器的時(shí)區(qū)。你可以在這里找到所有支持的時(shí)區(qū)的清單。

  1. SetEnv TZ Australia/Melbourne

2. 搜索引擎友好的301永久轉(zhuǎn)向方法

為什么這是搜索引擎友好的呢?因?yàn)楝F(xiàn)在很多現(xiàn)代的搜索引擎都有能根據(jù)檢查301永久轉(zhuǎn)向來(lái)更新它現(xiàn)有的記錄的功能。

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

3. 屏蔽下載對(duì)話(huà)框

通常,當(dāng)你下載東西的時(shí)候,你會(huì)看到一個(gè)對(duì)話(huà)框詢(xún)問(wèn)你是保持這個(gè)文件還是直接打開(kāi)它。如果你不想看到這個(gè)東西,你可以把下面的一段代碼放到你的.htaccess文件里。

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

4. 省去www前綴

SEO的一個(gè)原則是,確保你的網(wǎng)站只有一個(gè)URL。因此,你需要把所有的通過(guò)www的訪(fǎng)問(wèn)轉(zhuǎn)向的非www,或者反這來(lái)。

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

5. 個(gè)性化Error頁(yè)面

對(duì)每個(gè)錯(cuò)誤代碼定制自己個(gè)性化的錯(cuò)誤頁(yè)面。

  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. 壓縮文件

通過(guò)壓縮你的文件體積來(lái)優(yōu)化網(wǎng)站的訪(fǎng)問(wèn)速度。

  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. 緩存文件

緩存文件是另外一個(gè)提高你的網(wǎng)站訪(fǎng)問(wèn)速度的好方法。

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

8. 對(duì)某些文件類(lèi)型禁止使用緩存

而另一方面,你也可以定制對(duì)某些文件類(lèi)型禁止使用緩存。

  1. 顯式的規(guī)定對(duì)腳本和其它動(dòng)態(tài)文件禁止使用緩存

  2. <FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>
  3. Header unset Cache-Control
  4. </FilesMatch>

安全問(wèn)題

下面的htaccess代碼能夠提高你的web服務(wù)器的安全水平。圖片鏈接盜用保護(hù)非常有用,它能防止其他人偷盜使用你的服務(wù)器上的圖片資源。

1. 通過(guò).htaccess放盜鏈

痛恨那些偷盜鏈接你的web服務(wù)器上的圖片資源而耗盡了你的帶寬的行為嗎?試試這個(gè),你可以防止這種事情的發(fā)生。

  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. 防黑客

如果你想提高網(wǎng)站的安全等級(jí),你可以去掉下面的幾行代碼,這樣可以防止一些常見(jiàn)惡意URL匹配的黑客攻擊技術(shù)。

  1. RewriteEngine On
  2. proc/self/environ 沒(méi)門(mén)!

  3. RewriteCond %{QUERY_STRING} proc/self/environ [OR]
  4. 阻止腳本企圖通過(guò)URL修改mosConfig值

  5. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
  6. 阻止腳本通過(guò)URL傳遞的base64_encode垃圾信息

  7. RewriteCond %{QUERY_STRING} base64_encode.(.) [OR]
  8. 阻止在URL含有<script>標(biāo)記的腳本

  9. RewriteCond %{QUERY_STRING} (<|%3C).script.(>|%3E) [NC,OR]
  10. 阻止企圖通過(guò)URL設(shè)置PHP的GLOBALS變量的腳本

  11. RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
  12. 阻止企圖通過(guò)URL設(shè)置PHP的_REQUEST變量的腳本

  13. RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
  14. 把所有被阻止的請(qǐng)求轉(zhuǎn)向到403禁止提示頁(yè)面!

  15. RewriteRule ^(.*)$ index.php [F,L]

3. 阻止訪(fǎng)問(wèn)你的 .htaccess 文件

下面的代碼可以阻止別人訪(fǎng)問(wèn)你的.htaccess文件。同樣,你也可以設(shè)定阻止多種文件類(lèi)型。

  1. 保護(hù)你的 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. 多種文件類(lèi)型
  12. <FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
  13. Order Allow,Deny
  14. Deny from all
  15. </FilesMatch>

4. 重命名 htaccess 文件

你可以通過(guò)重命名htaccess文件來(lái)對(duì)其進(jìn)行保護(hù)。

  1. AccessFileName htacc.ess

5. 禁止目錄瀏覽

禁止服務(wù)器對(duì)外顯示目錄結(jié)構(gòu),反之亦然。

  1. 禁止目錄瀏覽
  2. Options All -Indexes
  3. 開(kāi)放目錄瀏覽

  4. Options All +Indexes

6. 改變?nèi)笔〉腎ndex頁(yè)面

你可以把缺省的 index.html, index.php 或 index.htm 改成其它頁(yè)面。

  1. DirectoryIndex business.html

7. 通過(guò)引用信息來(lái)阻止某些不歡迎的瀏覽者

  1. 阻止來(lái)自某網(wǎng)站的用戶(hù)

  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. 通過(guò)判斷瀏覽器頭信息來(lái)阻止某些請(qǐng)求

這個(gè)方法可以通過(guò)阻止某些機(jī)器人或蜘蛛爬蟲(chóng)抓取你的網(wǎng)站來(lái)節(jié)省你的帶寬流量。

  1. 阻止來(lái)自某些特定網(wǎng)站的用戶(hù)
  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. 禁止腳本執(zhí)行,加強(qiáng)你的目錄安全

  1. 禁止某些目錄里的腳本執(zhí)行權(quán)限
  2. AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
  3. Options -ExecCGI
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 此文章轉(zhuǎn)載~ Apache偽靜態(tài)(Rewrite).htaccess文件詳解 Htaccess(超文本訪(fǎng)問(wèn))是一個(gè)...
    bornfreekiss閱讀 4,292評(píng)論 0 6
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,535評(píng)論 19 139
  • 什么是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所寫(xiě),整個(gè)萬(wàn)...
    蘇文星閱讀 2,746評(píng)論 0 4
  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 7,002評(píng)論 3 64
  • 一、 鄭陽(yáng)縣許久沒(méi)有嫁娶了,今日的送親隊(duì)伍自然比以往倍受關(guān)注。原本喑啞沉悶聽(tīng)不出喜意的喇叭嗩吶漸行漸遠(yuǎn),淹沒(méi)在嘈雜...
    書(shū)姝閱讀 1,361評(píng)論 6 13

友情鏈接更多精彩內(nèi)容