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 

spacer.gifwKioL1VLBGSjzkBUAAEsiK1h_ck263.jpg


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

<Directory /data/www/>

    php_admin_flag engine off            

    <filesmatch "(.*)php">

         Order deny,allow

         Deny from all

    </filesmatch>

</Directory>

1
2
3
4
5
[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

spacer.gifwKiom1VLA1jzVaxuAADrjMrlOFQ601.jpg



apache rewrite模块应用——伪静态网页

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

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

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

wKiom1VLBW-xhZmUAAVXXQzkW5I298.jpg

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浏览器可以打开。

1
2
3
4
5
[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

wKiom1VLBCrhw4TsAAG9s6IZRMk362.jpg






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1643838,如需转载请自行联系原作者

目录
相关文章
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
域名解析 应用服务中间件 Shell
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
1246 77
|
Ubuntu PHP
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
310 25
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
349 28
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
633 17
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10492 2
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
2458 12
|
存储 监控 算法
关于员工上网监控系统中 PHP 关联数组算法的学术解析
在当代企业管理中,员工上网监控系统是维护信息安全和提升工作效率的关键工具。PHP 中的关联数组凭借其灵活的键值对存储方式,在记录员工网络活动、管理访问规则及分析上网行为等方面发挥重要作用。通过关联数组,系统能高效记录每位员工的上网历史,设定网站访问权限,并统计不同类型的网站访问频率,帮助企业洞察员工上网模式,发现潜在问题并采取相应管理措施,从而保障信息安全和提高工作效率。
253 7
|
9月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
496 0
PHP和Mysql前后端交互效果实现
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
491 18

推荐镜像

更多
  • DNS