Apache配置访问控制、禁用php解析、rewrite伪静态、限定user_agent

访问控制

以下针对apache虚拟主机配置

网站访问,限制指定ip才可以访问。只允许内网登录,不允许其他地址登录。

Order定义顺序,先deny,然后执行下面的deny from all,然后执行allow,再执行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 等

某个目录下禁止解析php,目录可以自定义;php解析失败的话会显示源代码,对于网站来说不安全。

<Directory /data/www/>

    php_admin_flag engine off            

    <filesmatch "(.*)php">

         Order deny,allow

         Deny from all

    </filesmatch>

</Directory>

[[email protected] 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 rewrite模块应用——伪静态网页

mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。

伪静态页面,网址域名后面的地址规范填写,看起来更美观,适合SEO搜索。

discuz! 管理后台页面——全局——左侧的SEO设置——URL伪静态,右边的可用选项全部打勾。

discuz伪静态配置,写入到虚拟主机配置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=

伪静态之后为: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,重写规则会显示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浏览器可以打开。

[[email protected] 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

时间: 2024-10-20 21:30:28

Apache配置访问控制、禁用php解析、rewrite伪静态、限定user_agent的相关文章

LAMP(apache禁止解析php,限制user_agent,php配置,open_bashdir

一.apache禁止解析php. 实例:假如我们的一个目录是允许上传图片的,可能有些别有用心的人通过某些手段上传php文件上来.也就意味着被执行的文件,可能是恶意文件 修改: [[email protected] admin]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <Directory /data/wwwroot/111.com/upload> php_admin_flag engine off              

Nginx伪静态配置和常用Rewrite伪静态规则

伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面来介绍nginx 伪静态配置方法有需要了解的朋友可参考. nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态. nginx只需要打开nginx.conf配置文件,在server里面写需要的规则即可. 代码如下: server { listen       80; server_name  haha.

apache配置rewrite及.htaccess文件(转载)

今天看到一个哥们的帖子发了个rewrite的帖子,以前也写过一个,配置挺简单的,但当时没注意这个问题,当时没有用到.htaccess文件,在机子上测试了一下,发现确实没法用,于是开始找问题的所在. 自己从头搭建了一下: 1.  首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrite 模块. 简单方法 echo phpinfo();  看apache的mod里有没有rewrite 如果有跳过此步 Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下

apache限制某个目录禁止解析php、apache禁止指定user_agent、php相关配置

一:apache限制某个目录禁止解析php 某个目录下禁止解析 php,这个很有用,我们做网站安全的时候,这个用的很多,比如某些目录可以上传文件,为了避免上传的文件有×××,所以我们禁止这个目录下面的访问解析php. <Directory /data/www/data> php_admin_flag engine off <filesmatch "(.*)php"> Order deny,allow Deny from all </filesmatch&g

Linux centosVMware apache 限定某个目录禁止解析php、限制user_agent、php相关配置

一.限定某个目录禁止解析php 核心配置文件内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <Directory /data/wwwroot/www.111.com/upload> php_admin_flag engine off </Directory> curl测试时直接返回了php源代码,并未解析 二.限制user_agent user_agent可以理解为浏览器标识 核心配置文件内容 <IfModul

2015-04-29/2015-05-04 LAMP第二部分apache配置 discuz

课程大纲: 1. 下载discuz! mkdir /data/www cd /data/www wget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip unzip Discuz_X3.2_SC_GBK.zip mv upload/*  . 2. 配置第一个虚拟主机 vi  /usr/local/apache2/conf/httpd.conf 删除httpd.conf中的这行前面的警号 #Include conf/e

lamp(二) apache 配置

1. 下载discuz! mkdir /data/wwwcd /data/wwwwget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zipunzip Discuz_X3.2_SC_GBK.zipmv upload/*  . 2. 配置第一个虚拟主机删除httpd.conf中的这行前面的警号#Include conf/extra/httpd-vhosts.confvim /usr/local/apache2/conf/e

lamp架构-访问控制-禁止php解析、屏蔽curl命令访问

lamp架构-访问控制-禁止php解析 有的网站论坛开启了上传图片功能,导致黑客木马捆绑图片上传到服务器,通过访问php来提升服务器后台权限,这里我们就需要将上传图片的目录禁止访问php文件,来达到防止黑客木马上传上来通过访问web来运行木马的作用: 编辑虚拟配置文件 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 增加代码 <Directory /data/wwwroot/szl.com/upload> php_admin_flag

Apache 配置多站点访问「为项目分配二级域名」

一级域名(baidu.com)也叫作顶级域名,注册一级域名是需要付费的 而二级域名(image.baidu.com)是基于一级域名延伸出来的,所以只要你购买了一级域名,二级域名是可以任意配置的 其实(www.baidu.com)也是二级域名,只是大家已经习惯使用www为前缀的二级域名作为网站的主域名入口而已 通过DNS解析服务商,可以为每个二级域名绑定不同的主机IP,这样即使只有一个主域名也可以架设多个网站了 如果你只有一台主机,并且要在上面建立多个项目,还得通过子域名的方式访问,那么你需要配置