apache的訪問控制指對任何資源的任何方式的訪問控制。
一、基於主機或者ip位址的控制
這種訪問控制基於訪問者的主機名或者ip位址,通過使用 deny 和 allow 指令,實現允許或者禁止某個主機訪問我們的伺服器資源。通常 order 指令也會一起使用,來定義 deny 和 allows 指令起作用的順序。如果不使用 order 指令,預設的順序為 deny, allow, 就相當於 order deny,allow。
order 指令和 allow,deny 指令配合使用,實現了乙個三步控制系統。
第一步:根據order的順序,將順序在前的所有的allow指令或者deny指令應用於當前請求;也就是說如果是 order allow,deny ,那麼第一步就是將所有的allow指令應用於當前訪問,如果有匹配,那麼就允許該訪問;如果沒有匹配到一條allow指令,那麼就禁止其訪問;
第二步:將剩下的另外乙個指令的所有語句跟當前請求匹配,如果有匹配就執行相應的訪問控制;
第三步:如果當前請求沒有在前兩步匹配到任何指令,就執行 order 指令中後面的那個指令。
下面,通過乙個例子理解一下:
使指定目錄下的資源只讓本地訪問
order allow,deny
allow from 127.0.0.1
第一步: 本地的訪問匹配了 allow from 127.0.0.1 這條指令,所以被允許;其他的主機沒有匹配到任何一條allow指令,所以被禁止訪問;
第二步:所有訪問都沒有匹配到 deny 指令;
第三步:沒有匹配到任何指令的訪問,也就是不是本地的訪問,按照 order 指令,執行後面的 deny 的指令,所以被禁止訪問;
二、根據環境變數的訪問控制
這種方式可以通過 allow from env= 或者 deny from env= 語法實現,比如只允許使用火狐瀏覽器的客戶訪問:
setenvif user-agent "firefox" ff=1
order allow,deny
allow from env=ff
三、使用 mod_rewrite 實現訪問控制通過 mod_rewrite 指令的 [f] 標誌,可以基於任何的標準對乙個資源實現訪問控制。
比如,我希望早八點到晚六點的時候才能訪問任何資源,我就可以這樣:
rewriteengine on
rewritecond % >20 [or]
rewritecond % <07
rewriterule ^/fridge - [f]這樣的話,晚上八點以後到早上7點,都會返回 403
apache伺服器URL訪問管理
個人的雲伺服器好久沒有管理過了,今天看了看伺服器的安全情況,把我嚇了一跳。雖然我注重安全,更改了埠,php檔案也進行了相對嚴格的防注入措施,但是我的apache 已經不想說什麼了.不僅沒有對url進行嚴格的過濾和重寫.就連indexes功能都沒有關閉.可怕,沒注意到這塊。果斷重寫配置了一下伺服器,對...
Apache伺服器無法訪問
今天開啟了電腦,開啟了apache伺服器,在本機的localhost可以訪問apache,但是同乙個區域網下的另一台電腦無法訪問apache伺服器。我的apache是另搭在一台電腦上的,所以我是用兩台電腦進行操作的。網上找了很多解決方法,但是對我都不管用。檢視apache有沒有啟動。進入cmd,輸入...
伺服器安裝apache伺服器
1.環境 centos7 2.鏈結伺服器 ssh username ip 3.安裝apache 4.設定apache在伺服器啟動時執行 5.在apache配置檔案中設定網域名稱 vi etc httpd conf httpd.conf,找到 servername 新增 網域名稱 80 儲存並退出。6...