.htaccess是Apache服務器的一個非常強大的分布式配置文件。 正確的理解和使用.htaccess文件,可以幫助我們優化自己的服務器或者虛擬主機。
如何啟用htaccess 以windows為例,進入apache/conf目錄,找到httpd.conf文件,去掉 LoadModule rewrite_module modules/mod_rewrite.so 前面的#,然后設置目錄屬性AllowOverride All,重啟apache即可
常見格式
下面是一個典型的htaccess文件
# 開啟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錯誤
典型應用
圖片防盜鏈
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/ [NC]
RewriteRule .(gif|jpg|png)$ - [F]
由于是基于HTTP_REFERER的驗證,所以只能防止一般的圖片盜鏈,因為HTTP_REFERER是比較容易偽造的
自定義404錯誤頁面
如果用戶輸入了一個不存在的url,那么就顯示自定義的錯誤頁面
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
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(相關資料圖)在生活中,很多人都不知道什么是閃蒸是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的什么是閃蒸相關的一些知識,我們一起來學習下吧!解釋:閃蒸就是高壓的飽和水進入比較低壓的容器中后由于壓力的突然降低,使這些飽和水變成一部分的容器壓力下的飽和水蒸氣和飽和水?,F象:物質的沸點是隨壓力增大而升高,而壓力越低,沸點就越低,這樣就可以讓高壓高溫流體經過減壓,使其沸點降低,進入閃蒸罐,這時...
做為京東集團的CEO,相信不少人對劉強東的身價有諸多疑問,他一年到底賺多少錢呢?現如今,京東已經成為淘寶的強力競爭對手,相信他的資產定然是不會少了,可是據了解,他一年只拿一塊錢的工資,你們信么,跟隨小編一起來看看。眾所周知,劉強東是京東集團的創始人,在短短十幾年內將京東從一個銷售光磁產品的銷售公司發展成了如今的網絡零售巨頭,而劉強東也被評為了“全球50位最偉大的領導者”。那...
鹽業銀行成立于什么時間?鹽業銀行成立于1915年3月,總管理處設干北京。1913年梁士詒代理財政總長時,曾向當時國務院建議設立鹽務實業銀行。鹽業銀行成立時,由袁世凱的表弟張鎮芳任經理。清末時張曾任鹽運使,民國初曾任河南督軍、總統府顧問。原由鹽務署撥給官款,實行官商合辦,經收全部鹽稅收入;并“得代理國庫金的一部分”。第二年袁世凱病死,鹽務署不撥官款,改為商辦,成立時實收資本 ...