我有一个php文件,我将专门使用它作为include.因此,我想抛出一个错误,而不是在直接通过输入URL而不是被包含来访问它时执行它.

基本上,我需要在php文件中进行如下判断:

if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");

有什么简单的方法可以做到这一点吗?

推荐答案

对于一般的"在Apache服务器上运行的PHP应用程序,您可以完全控制,也可以不完全控制"情况,最简单的方法是将您的include放入一个目录中,并拒绝您对该目录的访问.htaccess文件.为了省go 人们在谷歌上搜索的麻烦,如果您使用的是Apache,请将其放在一个名为".htaccess"的文件中,该文件位于您不希望访问的目录中:

Deny from all

如果你真的完全控制了服务器(现在即使是小应用也比我第一次写这个答案时更常见),最好的方法是将你想要保护的文件粘贴到你的web服务器所服务的目录之外.因此,如果你的应用程序在/srv/YourApp/中,请将服务器设置为提供/srv/YourApp/app/中的文件,并将包含的内容放在/srv/YourApp/includes中,这样就没有任何URL可以访问它们.

Php相关问答推荐

如何隐藏x轴图表上的值

Mysqli_stmt::Execute():结果字段元数据中存在过早的EOF

WooCommerce管理订单列表自定义列不显示值

获取要删除的图像的公共ID

使用PHP curl的Amazon SP API批处理调用

使用php ZipArhive类将Zip压缩文件分成多个部分

哪里的表现能更好?

无法允许元素(img:'src')与symfony html-sanitizer(symfony6.3 php 8.2)

当未 Select 任何变体时,在 WooCommerce 可变产品上显示自定义文本

使用 secure 和 httponly 选项删除 php 中的 cookie 值得吗?

按日期向 WooCommerce 中的我的帐户订单添加过滤器

多个产品类别 Select 自定义 WooCommerce 插件设置页面

如何在 Laravel 迁移中使用日期时间和天数?

图片上传成功

如何在 php 中获取正确的时间

PHP Symfony 在测试.env文件中将接口自动装配作为构造函数参数,但使用接口的特定类

PHP / DOM : 解析 HTML 以提取基于类的数​​据

如何在 Laravel 9 中判断异常是否可报告?

在管理表单字段中

多排序子数组 - 包含范围数据的子数组