当前位置:首页 > 日记 > 正文

Apache下禁止php文件被直接访问的方法

Apache下禁止php文件被直接访问的方法

一开始,我想在重写规则里直接禁止php后缀的URL被访问。但后来发现重写规则是递归调用的,如果在重写规则里直接禁止php,那么重写到php文件的规则也会失效。RewriteEngineOn

RewriteRule^test$/test.php[L]

RewriteRule^test.php$$0[F,L]

 

递归调用这真可怕,一开始访问/test的时候URL重写检查一次,然后匹配到^test$就内部重定向到/test.php,然而内部重定向也会触发URL重写,因此再次检查,匹配到^test.php$,被强制直接[F](Forbidden)操作,所以就变成了403错误。既然这样,就必须判是否已经经过服务器重定向。这时候服务器变量里有个REDIRECT_URL可以使用,因此我试着用这个做判断。

RewriteEngineOn

RewriteRule^test$/test.php[L]

RewriteCond%{REDIRECT_URL}^$

RewriteRule.*$0[F,L]这样写访问/test依旧被403,稍微检查下,发现RewriteCond中%{REDIRECT_URL}永远为空,这就蛋疼了,这样的话在重写规则中没办法直接禁止php了。但是可以用不怎么华丽的方法实现。就是在php文件中去判断REDIRECT_URL,虽然这个方法可以实现,但是感觉很逊,只是目前为止也没找到什么更好的办法了。

$_SERVER['REDIRECT_URL']ordie('Forbidden');//这里只是显示文字而已,实际使用的时候还需输出的HTTP错误代码。

echo$_SERVER['REDIRECT_URL'];//成功访问显示信息

?>

把这段PHP代码修改下丢进全局引用里就基本上没啥问题了,虽然不是完美解决,但是至少还是解决了,以后也许会发现更好的方法。

相关文章

两命名方法为6学习变量的例子

两命名方法为6学习变量的例子

变量,学习,方法,例子,电脑软件,前言 众所周知,ES6 ECMAscript 6(以下简称6),对Javascript语言的下一代标准,已于2015年6月正式发布,其目标是使Javascript语言可以用来编写复杂的大型应用程序,成为企业发展的语言。 它完善了ES5的命名规范,并公布了命名变量的两种新方…

ps怎么制作带云雾的星空效果?

ps怎么制作带云雾的星空效果?

云雾,星空,效果,电脑软件,ps,制作浩瀚的夜空效果主要使用ps的滤镜功能,现在就把制作的过程步骤以及截图分享给大家,希望你也能分享更多优质经验,本经验仅供参考使用。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2…

AICS6文件保存为低版本

AICS6文件保存为低版本

文件,保存为,版本,电脑软件,教你如何保存Adobe Illustrator CS6版本为其他低版本。 软件名称:Adobe Illustrator CS6(AI CS6)简化绿色中文版(32位+ 64位)软件大小:205mb更新时间:2014-05-11 1,点击文件;选择存储(A)… 2、在弹出窗口中,单击保存类型(T);…

JavaScript箭头 | arrow函数详解

JavaScript箭头 | arrow函数详解

函数,箭头,详解,电脑软件,JavaScript,为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。本文我们介绍箭头(arrow)函数的优点。更简洁的语法我们先来按常规语法定义函数:function funcName(params) { return p…

ps图案如何安装

ps图案如何安装

安装,图案,电脑软件,ps,一、首先打开photoshop,选择菜单 : 编辑 > 预设管理器 二、在预设类型中选择图案,然后再选载入按钮 三、选择你想要载入的图案 四、载入后就可以看到刚才载入的图案…

风暴声不能播放光盘播放窗口不显示

风暴声不能播放光盘播放窗口不显示

显示,解决方案,光盘,不能播放,窗口,问题: 一个新的电脑给领导,发现电脑不能播放DVD,当暴风播放,它不显示任何图片,也没有错误提示。播放窗口已为黑屏。 答案uff1a 对原因的分析,该盘插入肯定没有问题,因为这是公司统一的视频数据,经过一系列的测…

php实现遍历多维数组的方法

php实现遍历多维数组的方法

遍历,方法,多维数组,电脑软件,php,本文实例讲述了php实现遍历多维数组的方法。分享给大家供大家参考,具体如下:$a=array('fruits'=>array('a'=>'orange','b'=>'grape',c=>'apple'), 'numbers'=>array(1,2,3,4,5,6), 'holes'=…

利用滤镜简单制作老照片效果

利用滤镜简单制作老照片效果

滤镜,老照片,效果,简单,电脑软件,   本教程主要介绍使用Photoshop的外挂滤镜“DigiEffects—旧照片”滤镜制作战争时期的黑白电影效果。利用滤镜简单制作老照片效果滤镜安装方法:1、首先解压压缩包,得到一个&ldqu…

理解javascript中的Function.proto

理解javascript中的Function.proto

方法,电脑软件,Function,javascript,bind,在初学Javascript时,我们也许不需要担心函数绑定的问题,但是当我们需要在另一个函数中保持上下文对象this时,就会遇到相应的问题了,我见过很多人处理这种问题都是先将this赋值给一个变量(比如self、_thi…

深入浅析Orcale的nvl函数和SQL Ser

深入浅析Orcale的nvl函数和SQL Ser

函数,电脑软件,nvl,Orcale,isnull,Orcal 的 nvl函数NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值,Expr1,Expr2都为NULL则返回NULLNVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值NULLIF(Expr1,Ex…

excel2007插入公式编辑器的方法exc

excel2007插入公式编辑器的方法exc

公式编辑器,方法,电脑软件,strong,  Excel中经常需要使用到公式编辑器编辑公式,公式编辑器具体该如何插入呢?接下来是小编为大家带来的excel2007插入公式编辑器的方法,供大家参考。excel2007插入公式编辑器的方法插入公式编辑器步骤1:打开Ex…

通过IIS设置架设FTP服务器程序步骤

通过IIS设置架设FTP服务器程序步骤

设置,步骤,服务器,程序,电脑软件, FTP服务器在文件的传输上性能稳定,占用系统资源小,而且传输速度快,现在网上已经有很多的FTP服务器可供使用,而微软IIS强大的功能,除了提供WWW服务之外,还提供FTP的服务,利用它就可以很容易架设一个功能卓越的F…