溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agent

發(fā)布時間:2020-07-10 07:42:17 來源:網絡 閱讀:3216 作者:模范生 欄目:web開發(fā)

訪問控制

以下針對apache虛擬主機配置

網站訪問,限制指定ip才可以訪問。只允許內網登錄,不允許其他地址登錄。

Order定義順序,先deny,然后執(zhí)行下面的deny from all,然后執(zhí)行allow,再執(zhí)行allow from 127.0.0.1,意思是拒絕所有的,只允許本地可以訪問。

<Directory /data/www/>

<filesmatch ".*">

     Order deny,allow

     Deny from all

     Allow from 127.0.0.1

</filesmatch>

</Directory>


針對請求的url去限制,只允許內網和指定ip可以訪問包含admin關鍵詞的地址,一般為管理后臺;

<filesmatch "(.*)admin(.*)">

          Order deny,allow

          Deny from all

          Allow from 127.0.0.1

          Allow from 2.2.2.2

</filesmatch>

假如該虛擬機的域名為 domain.com , 這樣配置后,除了 127.0.0.1 和 2.2.2.2 外,其他ip訪問以下類似的uri時都會直接禁止的。 

http://domain.com/1212admin.txt

http://domain.com/admin.php

http://domain.com/1212/admin.html 

Apache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agentApache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agent


某個目錄下禁止解析php,目錄可以自定義;php解析失敗的話會顯示源代碼,對于網站來說不安全。

<Directory /data/www/>

    php_admin_flag engine off            

    <filesmatch "(.*)php">

         Order deny,allow

         Deny from all

    </filesmatch>

</Directory>

[root@localhost www]# curl -x127.0.0.1:80 www.111.com/forum.php -I
HTTP/1.1 403 Forbidden
Date: Mon, 04 May 2015 07:41:15 GMT
Server: Apache/2.2.29 (Unix) DAV/2 PHP/5.3.28
Content-Type: text/html; charset=iso-8859-1

Apache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agentApache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agent



apache rewrite模塊應用——偽靜態(tài)網頁

mod_rewrite是Apache的一個非常強大的功能,它可以實現偽靜態(tài)頁面。

偽靜態(tài)頁面,網址域名后面的地址規(guī)范填寫,看起來更美觀,適合SEO搜索。

discuz! 管理后臺頁面——全局——左側的SEO設置——URL偽靜態(tài),右邊的可用選項全部打勾。

Apache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agent

discuz偽靜態(tài)配置,寫入到虛擬主機配置rewrite模塊中;forum是版塊,thread是帖子;

 <IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^/topic-(.+)\.html$ /portal.php?mod=topic&topic=$1&%1

RewriteRule ^/article-([0-9]+)-([0-9]+)\.html$ /portal.php?mod=view&aid=$1&page=$2&%1

RewriteRule ^/forum-(\w+)-([0-9]+)\.html$ /forum.php?mod=forumdisplay&fid=$1&page=$2&%1

RewriteRule ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

RewriteRule ^/group-([0-9]+)-([0-9]+)\.html$ /forum.php?mod=group&fid=$1&page=$2&%1

RewriteRule ^/space-(username|uid)-(.+)\.html$ /home.php?mod=space&$1=$2&%1

RewriteRule ^/blog-([0-9]+)-([0-9]+)\.html$ /home.php?mod=space&uid=$1&do=blog&id=$2&%1

RewriteRule ^/archiver/(fid|tid)-([0-9]+)\.html$ /archiver/index.php?action=$1&value=$2&%1

RewriteRule ^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ /plugin.php?id=$1:$2&%1

</IfModule>


實驗結果:

帖子地址為:http://www.111.com/forum.php?mod=viewthread&tid=1&extra=

偽靜態(tài)之后為:http://www.111.com/thread-1-1-1.html


apache 限制指定user_agent

有些user_agent 不是我們想要的,可以通過rewrite功能針對 %{HTTP_USER_AGENT} 來rewirete到403頁,從而達到限制某些user_agent的請求。

apache的rewrite功能有一項就是forbidden,那就是 F,重寫規(guī)則會顯示403錯誤,無法打開網頁。


限制curl和IE瀏覽器8.0不能訪問,360的瀏覽器版本為IE 7.0可以訪問。USER_AGENT具體的版本需要看日志的詳細信息,然后進行限制。

例如:("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)")

如禁用所有的IE瀏覽器:RewriteCond %{HTTP_USER_AGENT}  ^.*MSIE*


<IFModule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{HTTP_USER_AGENT}  ^.*MSIE\ 8.0* [NC,OR] 

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

        RewriteRule  .*  -  [F]

</IFModule>


測試結果,使用curl本地解析網站為403錯誤;網頁訪問IE提示403錯誤,360瀏覽器可以打開。

[root@localhost www]# curl -x127.0.0.1:80 www.1111.com -I
HTTP/1.1 403 Forbidden
Date: Thu, 07 May 2015 02:09:58 GMT
Server: Apache/2.2.29 (Unix) DAV/2 PHP/5.3.28
Content-Type: text/html; charset=iso-8859-1

Apache配置訪問控制、禁用php解析、rewrite偽靜態(tài)、限定user_agent



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI