天天看點

apache‘禁止指定user_agent’ 和 ‘禁止使用者通過浏覽器通路某個目錄’

禁止指定user_agent

本節介紹如何通過rewrite實作限制指定 user_agent 的請求:

即禁掉不想讓那些引擎通路的請求

編輯虛拟主機配置檔案

[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

(找到“域名301跳轉的配置”即“rewrite的mod配置”内寫入)

   RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]      # [NC]表示不區分大小寫

   RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]

   RewriteRule .* - [F]                                                           # 把 curl 和 chrome 通路禁掉

   [root@LAMPLINUX ~]# apachectl -t

   Syntax OK

   [root@LAMPLINUX ~]# apachectl restart

這樣就禁止并限定制定浏覽器的通路請求,我們通過rewrite實作。

禁止使用者通過浏覽器通路某個目錄

接着上一節,繼續編輯虛拟主機配置檔案

通過rewrite限制通路某個目錄,即讓目錄下的檔案不能被使用者通過浏覽器通路。

(還是在rewrite的mod裡,添加之前要把上一節的條件注釋掉 “#”,便于測試是否執行成功)

RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]

RewriteRule .* - [F]

[root@LAMPLINUX ~]# apachectl -t

Syntax OK

[root@LAMPLINUX ~]# apachectl restart

經測試,執行成功,網址方法通路/tmp/目錄以及目錄下的檔案

這一節的兩個配置可以總況可以寫成以下形式:

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www.lam2.com$

    RewriteRule ^/(.*)$ http://www.lam.com/$1 [R=301,L]

    RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]       # [NC]表示不區分大小寫

    RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]

    RewriteRule .* - [F]                                                            # 把 curl 和 chrome 通路禁掉

    RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]

    RewriteRule .* - [F]

</IfModule>

藍色部分是域名301跳轉;

紅色部分是禁止指定user_agent;

綠色部分是禁止使用者通過浏覽器通路某個目錄。

本文轉自 聽丶飛鳥說 51CTO部落格,原文連結:http://blog.51cto.com/286577399/1673210

繼續閱讀