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,如需转载请自行联系原作者

目录
相关文章
|
15天前
|
PHP 项目管理 开发者
深入解析PHP的命名空间和自动加载机制
【4月更文挑战第4天】 在PHP的编程世界中,命名空间和自动加载机制是构建大型应用程序时不可或缺的工具。本文将深入探讨这两个概念,揭示它们如何简化代码结构、避免类名冲突以及提高代码维护性。通过对PHP命名空间的由来、作用域和使用方法的细致剖析,以及对自动加载机制工作原理和应用实践的全面讲解,读者将获得有效管理复杂项目中依赖关系的能力。
|
30天前
|
PHP 开发者
深入解析PHP的命名空间
【2月更文挑战第29天】 在现代PHP开发中,命名空间是管理代码和避免命名冲突的重要工具。本文将探讨PHP命名空间的核心概念、实现原理及其在实际项目中的应用场景。我们将通过示例代码和最佳实践,帮助开发者更好地理解和运用命名空间,以提升代码的可维护性和复用性。
|
6月前
|
存储 JavaScript 前端开发
PHP的基础知识点解析
PHP的基础知识点解析
|
25天前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
197 2
|
29天前
|
PHP 开发者
PHP 8.1 新特性解析:提升开发效率与性能的利器
本文将深入探讨PHP 8.1的新特性,包括联合方法调用、never返回类型、str_contains函数等,展示这些更新如何提升开发者的工作效率和代码性能。
11 1
|
30天前
|
编译器 PHP 开发者
PHP 8 新特性解析:提升性能与安全性
随着技术的不断进步,PHP 8作为一种流行的服务器端脚本语言,在性能和安全性方面有了许多值得关注的新特性。本文将深入探讨PHP 8的一些重要更新,包括Just In Time编译器、Union Types、Named Arguments等,帮助开发者更好地利用这些新功能提升应用程序的性能和安全性。
|
1月前
|
Web App开发 存储 Linux
Linux Apache服务详解——Apache服务访问控制
Linux Apache服务详解——Apache服务访问控制
328 7
|
9月前
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
147 0
|
4月前
|
PHP 数据安全/隐私保护 Python
php的访问控制,有点东西
public(公有),protected(受保护)或 private(私有) ,这是php面对对象经常也用写到的。 如果不写,那默认是public
20 0

热门文章

最新文章

推荐镜像

更多