php - .htaccess 代码阻止所有直接访问,但允许通过 include / cron_jobs / ajax 请求进行内部访问
问题描述
我有一个以下文件夹结构(为了更好地理解)
app
modules
-.htaccess
-login.php
-contact.php
-email.php
cron_jobs
-.htaccess
-.autoBackupDB.php
-.autoflushTmpDirectory.php
tmp
-.htaccess
<some tmp files and folders created>
下面是我正在使用的 .htaccess 代码
# Disable directory browsing
Options All -Indexes
Order deny,allow
Deny from all
我想要达到什么目的?
我想通过直接 URL 或从其他方式直接调用来阻止对这些文件夹的所有请求,我可以用上面的.htaccess
代码做到这一点,但是当我执行 cron 作业或发出 ajax 请求时会出现问题。我只希望文件夹的内容可以被内部请求访问cron_jobs
,request made by ajax
或者include("")
应该阻止对文件的任何类型的访问。
它有时会弹出一个错误403 / 404
,这使得它无法访问。
任何人都可以通过知道我哪里出错或指导我更新解决方案来帮助我。
解决方案
cron 作业有 2 种变体:通过命令行访问和通过 http/https 请求访问。第一个不受 Web 服务器设置的影响。可以通过更改规则来允许第二个:
Order deny,allow
Allow from IP_OF_CRON_SERVER
Deny from all
访问include
或require
完全不受影响。
Ajax 调用是 http/https 请求。所以没有区别。通常的方法是通过服务器配置(.htaccess)允许它并通过 PHP 检查权限。
推荐阅读
- python - 使用 Raspberry Pi 3 在 Docker 上安装 TensorFlow
- codefluent - 可以从集合对象中调用不返回数据的 Raw SQL 方法吗?
- python - 如何修复 TensorFlow 对象检测示例中 version.py 导致的错误
- angular - 如何创建具有角度 4 或更多复选框的动态过滤器?
- java - NullPointerException 问题
- image - 如何使用 ffmpeg 将自定义缩略图添加到 .mp4 文件?
- javascript - Javascript设置日期格式,包括0和日期和月份
- javascript - async.js 是否需要同时处理多个 ffmpeg 转换?
- node.js - Prevent updatedAt change in Mongoose findOneAndUpdate
- compilation - 使用 -multicore 编译 PGI