手机版

禁止在Apache下直接访问php文件的解决方案

时间:2021-11-21 来源:互联网 编辑:宝哥软件园 浏览:

首先,我想直接禁止在重写规则时访问带有php后缀的URL。然而,发现重写规则被递归调用。如果重写规则中直接禁止php,那么重写到php文件中的规则也将失败。重写引擎复制代码如下:重写规则测试$/test.php [l]重写规则Test.php $ $ 0[f,l] Apache下禁止php文件被直接访问的方法

递归太可怕了。当您在开始访问/test时,会检查一次URL重写,如果与$ test匹配,则在内部重定向到/test.php。但是,内部重定向也会触发URL重写。因此,如果再次检查,如果与$ test.php匹配,将强制直接操作[F](禁止),因此成为403错误。在这种情况下,必须判断它是否已被服务器重定向。此时,服务器变量中有一个REDIRECT_URL可用,所以我尝试以此作为判断。复制代码如下:重写规则测试上的重写引擎$ /test.php [l]重写代码%{REDIRECT_URL} $重写规则。* $0 [f,l]写访问/测试仍然是403。稍微检查一下,发现重写代码中的% {redirect _ URL}总是。但是它可以用一种不那么华丽的方式来实现。是判断php文件中的REDIRECT_URL。虽然这个方法可以实现,但是感觉很可怕,但是到目前为止还没有找到更好的方法。复制代码如下: $ _ server[' redirect _ URL ']ordie('禁止');//这只是文本的显示,实际使用时需要输出的HTTP错误代码。echo $ _ SERVER[' REDIRECT _ URL '];//成功访问显示信息?

修改这段PHP代码,扔进全局引用,基本没问题。虽然不是完美的解决方案,但至少解决了,以后可能会找到更好的方法。

版权声明:禁止在Apache下直接访问php文件的解决方案是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。