.htaccess基本語法和應用 (2012-11-09 16:13:47)轉載▼

htaccess基本語法和應用

  (2012-11-09 16:13:47)
標籤: 

htaccess

 

it

分類: 網絡

.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重寫
RewriteEngine on
# URL重寫的做用域
# RewriteBase /path/to/url
# 知足怎樣的條件
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]

# 應用怎樣的規則
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]服務器

來看看RewriteCond,首先有一個%,由於{HTTP_HOST}是一個apache變量,須要用%來指示。從!開始就是匹配的條件,支持 正則。!表示不等於,這句話的意思就是:若是HTTP_HOST不是www.example.com。後面的[NC](no case)表示忽略大小寫,常見的還有網絡

  • [L](last):終止一系列的RewriteCond和RewriteRule
  • [R](redirect):觸發一個顯示的跳轉,也能夠指定跳轉類型,如[R=301]
  • [F](forbidden):禁止查看特定文件,apache會觸發403錯誤
典型應用

圖片防盜鏈app

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]

因爲是基於HTTP_REFERER的驗證,因此只能防止通常的圖片盜鏈,由於HTTP_REFERER是比較容易僞造的分佈式

自定義404錯誤頁面
若是用戶輸入了一個不存在的url,那麼就顯示自定義的錯誤頁面ide

ErrorDocument 404 /404.html
# 其餘同理
ErrorDocument 500 /500.html

處理移動過的文件優化

Redirect 301 /old.html http://yoursite.com/new.html
# 也能夠是下面這樣
RewriteRule /old.html http://yoursite.com/new.html [R=301,L]
# 若是想隱式跳轉(URL地址不變,但實際上內容是其餘URL的),就使用下面的
RewriteRule /old.html http://yoursite.com/new.html [L]

對於RewriteRule還有好多文章能夠作,好比

# 把html後綴的url連接到php文件
# $1指代的是前面第1個用括號括起來的內容
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
# 或者把舊文件夾的內容連接到新文件夾
RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]
# 隱藏文件名
RewriteRule ^/?([a-z]+)$ $1.php [L]禁止顯示目錄列表

若是目錄裏沒有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
# 若是設置類型爲 application/octet-stream 將提示下載
AddType application/octet-stream .pdf


相關文章
相關標籤/搜索