php - .htaccess 只允许从包含文件访问文件

标签 php apache .htaccess

我的网站上有各种子文件夹,我希望用户无法通过 URL 访问它们,但同时我的主要 PHP 文件能够包含它们或将它们用作表单或链接上的操作.

我尝试将 .htaccess 与

一起使用
<Files *>
    Order Allow,Deny
    Deny from All
</Files>

但它甚至拒绝了我自己脚本中的所有访问。我发现这是合乎逻辑的,但我不知道如何让它发挥作用。有任何想法吗?

附言我主要担心的是一些文件没有包含在主 PHP 文件中,但是它们在那里链接并且它们的代码以 header('Location: ../index.php'); 返回到项目的主页。

最佳答案

我看到很多答案都是Allow,Deny not Deny,Allow

这个问题的顺序是导致问题的原因。您是在告诉计算机拒绝比允许更重要,因为它排在最后。给你看……如果你说:

<Files .htaccess>
Order Allow,Deny 
Deny From All
Allow From xxx.xxx.xxx.xxx 127.0.0.1
</Files>

你说的是先允许任何人允许,然后拒绝所有......这仍然拒绝所有。

如果您反转为 Deny,Allow 就是说 Deny All,然后是 Allow anyone Allowed。

<Files .htaccess>
Order Deny,Allow
Deny From All
Allow From xxx.xxx.xxx.xxx 127.0.0.1
</Files>

允许命令更重要,因为它是最后一个命令,因此允许那些列在允许来自命令之后的命令。

xxx.xxx.xxx.xxx = 您的 IP

关于php - .htaccess 只允许从包含文件访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825183/

相关文章:

PHP 处理错误

php - 将用户数据存储在单独的数据库中是否有任何额外的安全性?

php - 从 codeigniter 中的数据库查询将动态数据添加到 View 时 undefined variable

php - CodeIgniter Localhost 重定向到 xampp 主屏幕

apache - htaccess重写

javascript - jQuery - IF ELSE - 不读取任何变量

macos - Mac Apache Web服务器将无法启动,也无法找到任何Web目录

mysql - 我无法在 mysql 上设置新变量

.htaccess - htaccess : multiple sub folders and website access

apache - Web 服务器不断重定向到 HTTP