Htaccess文件用法集錦
1. 時區設置
有些時候,當你在PHP里使用date或mktime函數時,由于時區的不同,它會顯示出一些很奇怪的信息。下面是解決這個問題的方法之一。就是設置你的服務器的時區。你可以在這里找到所有支持的時區的清單。
- SetEnv TZ Australia/Melbourne
2. 搜索引擎友好的301永久轉向方法
為什么這是搜索引擎友好的呢?因為現在很多現代的搜索引擎都有能根據檢查301永久轉向來更新它現有的記錄的功能。
- Redirect 301 http://www.aqee.net/home http://www.aqee.net/
3. 屏蔽下載對話框
通常,當你下載東西的時候,你會看到一個對話框詢問你是保持這個文件還是直接打開它。如果你不想看到這個東西,你可以把下面的一段代碼放到你的.htaccess文件里。
- AddType application/octet-stream .pdf
- AddType application/octet-stream .zip
- AddType application/octet-stream .mov
4. 省去www前綴
SEO的一個原則是,確保你的網站只有一個URL。因此,你需要把所有的通過www的訪問轉向的非www,或者反這來。
- RewriteEngine On
- RewriteBase /
- RewriteCond %{HTTP_HOST} ^www.aqee.net [NC]
- RewriteRule ^(.*)$ http://aqee.net/$1 [L,R=301]
5. 個性化Error頁面
對每個錯誤代碼定制自己個性化的錯誤頁面。
- ErrorDocument 401 /error/401.php
- ErrorDocument 403 /error/403.php
- ErrorDocument 404 /error/404.php
- ErrorDocument 500 /error/500.php
6. 壓縮文件
通過壓縮你的文件體積來優化網站的訪問速度。
- # 壓縮 text, html, javascript, css, xml:
- AddOutputFilterByType DEFLATE text/plain
- AddOutputFilterByType DEFLATE text/html
- AddOutputFilterByType DEFLATE text/xml
- AddOutputFilterByType DEFLATE text/css
- AddOutputFilterByType DEFLATE application/xml
- AddOutputFilterByType DEFLATE application/xhtml+xml
- AddOutputFilterByType DEFLATE application/rss+xml
- AddOutputFilterByType DEFLATE application/javascript
- AddOutputFilterByType DEFLATE application/x-javascript
7. 緩存文件
緩存文件是另外一個提高你的網站訪問速度的好方法。
- <FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
- Header set Cache-Control “max-age=2592000″
- </FilesMatch>
8. 對某些文件類型禁止使用緩存
而另一方面,你也可以定制對某些文件類型禁止使用緩存。
- # 顯式的規定對腳本和其它動態文件禁止使用緩存
- <FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>
- Header unset Cache-Control
- </FilesMatch>
安全問題
下面的htaccess代碼能夠提高你的web服務器的安全水平。圖片鏈接盜用保護非常有用,它能防止其他人偷盜使用你的服務器上的圖片資源。
1. 通過.htaccess放盜鏈
痛恨那些偷盜鏈接你的web服務器上的圖片資源而耗盡了你的帶寬的行為嗎?試試這個,你可以防止這種事情的發生。
- RewriteBase /
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://(www.)?aqee.net/.*$ [NC]
- RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
2. 防黑客
如果你想提高網站的安全等級,你可以去掉下面的幾行代碼,這樣可以防止一些常見惡意URL匹配的黑客攻擊技術。
- RewriteEngine On
- # proc/self/environ? 沒門!
- RewriteCond %{QUERY_STRING} proc/self/environ [OR]
- # 阻止腳本企圖通過URL修改mosConfig值
- RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
- # 阻止腳本通過URL傳遞的base64_encode垃圾信息
- RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
- # 阻止在URL含有<script>標記的腳本
- RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
- # 阻止企圖通過URL設置PHP的GLOBALS變量的腳本
- RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
- # 阻止企圖通過URL設置PHP的_REQUEST變量的腳本
- RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
- # 把所有被阻止的請求轉向到403禁止提示頁面!
- RewriteRule ^(.*)$ index.php [F,L]
3. 阻止訪問你的 .htaccess 文件
下面的代碼可以阻止別人訪問你的.htaccess文件。同樣,你也可以設定阻止多種文件類型。
- # 保護你的 htaccess 文件
- <Files .htaccess>
- order allow,deny
- deny from all
- </Files>
- # 阻止查看指定的文件
- <Files secretfile.jpg>
- order allow,deny
- deny from all
- </Files>
- # 多種文件類型
- <FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
- Order Allow,Deny
- Deny from all
- </FilesMatch>
4. 重命名 htaccess 文件
你可以通過重命名htaccess文件來對其進行保護。
- AccessFileName htacc.ess
5. 禁止目錄瀏覽
禁止服務器對外顯示目錄結構,反之亦然。
- # 禁止目錄瀏覽
- Options All -Indexes
- # 開放目錄瀏覽
- Options All +Indexes
6. 改變缺省的Index頁面
你可以把缺省的 index.html, index.php 或 index.htm 改成其它頁面。
- DirectoryIndex business.html
7. 通過引用信息來阻止某些不歡迎的瀏覽者
- # 阻止來自某網站的用戶
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]
- RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]
- RewriteRule .* - [F]
- </ifModule>
8. 通過判斷瀏覽器頭信息來阻止某些請求
這個方法可以通過阻止某些機器人或蜘蛛爬蟲抓取你的網站來節省你的帶寬流量。
- # 阻止來自某些特定網站的用戶
- <IfModule mod_rewrite.c>
- SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider
|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT - SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
- Deny from env=HTTP_SAFE_BADBOT
- </ifModule>
9. 禁止腳本執行,加強你的目錄安全
- # 禁止某些目錄里的腳本執行權限
- AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
- Options -ExecCGI
[英文出處]:Link