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

Dim*_*los 6 php apache .htaccess

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

我尝试使用.htaccess

<Files *>
    Order Allow,Deny
    Deny from All
</Files>
Run Code Online (Sandbox Code Playgroud)

但它甚至在我自己的脚本中也拒绝了所有访问权限.我发现逻辑,但我不知道如何使它工作.有任何想法吗?

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

Rea*_*fit 7

我看到许多答案,允许,拒绝否认,允许

这个顺序很重要并且导致了问题.你告诉计算机拒绝比允许更重要,因为它列在最后.告诉你......如果你说:

<Files .htaccess>
Order Allow,Deny 
Deny From All
Allow From xxx.xxx.xxx.xxx 127.0.0.1
</Files>
Run Code Online (Sandbox Code Playgroud)

你首先说允许任何人允许,然后拒绝所有...哪个仍然拒绝所有.

如果你逆转拒绝,允许你说拒绝所有,然后允许任何人允许.

<Files .htaccess>
Order Deny,Allow
Deny From All
Allow From xxx.xxx.xxx.xxx 127.0.0.1
</Files>
Run Code Online (Sandbox Code Playgroud)

允许命令更重要,因为它是最终命令,因此允许在Allow From命令之后列出的命令.

xxx.xxx.xxx.xxx =您的IP


Art*_*pov 1

通常为了保护这些逻辑文件不被公共访问,您可以

  1. 将其放在受保护的目录中,位于 htdocs 之上
  2. 添加对公共常量的检查..if(!is_defined(some_root_const)){die();}
  3. 将扩展名更改为 .inc 或其他内容..并基于此拒绝 .htaccess