.htaccess是Apache服務器的一個很是強大的分佈式配置文件。 正確的理解和使用.htaccess文件,能夠幫助咱們優化本身的服務器或者虛擬主機。php
如何啓用htaccess 以windows爲例,進入apache/conf目錄,找到httpd.conf文件,去掉 LoadModule rewrite_module modules/mod_rewrite.so 前面的#,而後設置目錄屬性AllowOverride All,重啓apache便可html
常見格式apache
下面是一個典型的htaccess文件windows
# 開啓URL重寫# 應用怎樣的規則
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]服務器
來看看RewriteCond,首先有一個%,由於{HTTP_HOST}是一個apache變量,須要用%來指示。從!開始就是匹配的條件,支持 正則。!表示不等於,這句話的意思就是:若是HTTP_HOST不是www.example.com。後面的[NC](no case)表示忽略大小寫,常見的還有網絡
圖片防盜鏈app
RewriteCond %{HTTP_REFERER} !^$因爲是基於HTTP_REFERER的驗證,因此只能防止通常的圖片盜鏈,由於HTTP_REFERER是比較容易僞造的分佈式
自定義404錯誤頁面
若是用戶輸入了一個不存在的url,那麼就顯示自定義的錯誤頁面ide
處理移動過的文件優化
Redirect 301 /old.html http://yoursite.com/new.html對於RewriteRule還有好多文章能夠作,好比
# 把html後綴的url連接到php文件若是目錄裏沒有index文件,又沒有對該目錄作過特別的處理,尤爲是windows主機,那麼該目錄裏的內容就會顯示出來,這時能夠在根目錄建立 一個.htaccess文件,而後寫上
Options -Indexes阻止/容許特定IP/IP段
# 禁止全部IP,除了指定的
order deny,allow
deny from all
# 若是想容許IP段,如123.123.123.0 ~ 123.123.123.255,則
# allow from 123.123.123.
allow from 123.123.123.123
ErrorDocument 403 /page.html
allow from all
#若是想禁止特定IP
deny from 123.123.123.123
添加MIME類型
AddType video/x-flv .flv