鑑於Justhost上使用.htaccess文件的機會不少,使用的面也比較多,特地轉一個相關的文章來供大家參考。
1.時區設置
有些時候,當你在PHP裏使用date或mktime函數時,由於時區的不同,它會顯示出一些很奇怪的信息。下面是解決這個問題的方法之一。就是設置你的服務器的時區。你可以在這裏找到所有支持的時區的清單。
SetEnv TZ Australia/Melbourne
2. 搜索引擎友好的301永久轉向方法
爲什麼這是搜索引擎友好的呢?因爲現在很多現代的搜索引擎都有能根據檢查301永久轉向來更新它現有的記錄的功能。
Redirect 301 http://www.baidu.com
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.baidu.com[NC]
RewriteRule ^(.*)$ http://baidu.com/$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
————————————————————————
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE p_w_picpath/svg+xml
# Or, compress certain file types by extension:
<Files *.html>
SetOutputFilter DEFLATE
</Files>
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.)?cometao.net/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !cometao.net [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !gotao.org [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .*.(gif|jpg|jpeg|bmp|png|zip|pdf|doc|swf|flv)$ – [F]
</IfModule>
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} baidu.com[NC,OR]
RewriteCond %{HTTP_REFERER} baidu.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|cometao_net_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
10.圖片防盜鏈
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !cometao.net[NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .*.(jpg|gif|png|bmp|jpeg)$ xxx/forbid.png [R,NC,L]
RewriteCond 裏面的第一行是指如果沒有 Referer,或者說如果是直接訪問圖片地址,那麼顯示圖片。
接下來的就是允許了自己的網站和谷歌,抓蝦,鮮果等網站訪問。這樣訂閱北街博客的朋友都能看到圖片了。
最後一行 RewriteRule 是說如果文件後綴名是 jpg 和 gif 之類的話,那麼就顯示爲 xxx/forbid.png 這個圖片。
一般 Linux 主機和 Unix 主機都支持重寫 .htaccess。這樣子設置以後,在上面添加的閱讀器中就可以查看北街博客文章喝圖片了,同時也能有效地防止盜鏈圖片而導致的流量超標。
經過這次試驗之後,我發現修改 .htaccess 和使用 Hotlink Protection 插件都能實現 WordPress 圖片防盜鏈,只是有些虛擬主機可能隔天才能見效,請配置完成之後耐心等待……
11.隱藏服務器的數字簽名
ServerSignature Off
隱藏服務器的數字簽名之後,***者將很難找到有機會找到安全漏洞,因爲他們不知道背後的服務器是什麼