Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 拒绝直接访问除服务器/localhost以外的文件_Apache_.htaccess - Fatal编程技术网

Apache 拒绝直接访问除服务器/localhost以外的文件

Apache 拒绝直接访问除服务器/localhost以外的文件,apache,.htaccess,Apache,.htaccess,如果我不希望用户直接访问目录中的文件,但允许服务器/本地主机访问,因为我试图避免直接访问的目录包含由PHP输出/解析的HTML文件,那么如何拒绝直接访问该目录中的文件 目录列表如下所示: template | | +--------> acp | | | +------> acp_index.html | +------> acp_settings.html | +---

如果我不希望用户直接访问目录中的文件,但允许服务器/本地主机访问,因为我试图避免直接访问的目录包含由PHP输出/解析的HTML文件,那么如何拒绝直接访问该目录中的文件

目录列表如下所示:

template
   |
   |
   +--------> acp
   |           |
   |           +------> acp_index.html
   |           +------> acp_settings.html
   |
   +--------> css
   |           |
   |           +------> stylesheet.css
   |
   +--------> js
   |           |
   |           +------> scripts.js
   |
   +---> index.html
   +---> login.html
   +---> etc...

模板/acp
中,我需要避免直接访问文件,但是本地主机/服务器应该能够访问和解析文件。

如果我理解正确,您想让人们远离
模板/acp
,同时仍然允许服务器访问文件吗

您可以创建一个
.htaccess
并将其放置在
模板/acp
中,该文件应包含来自所有
拒绝字样,就像这样,每个试图获取该文件的人都将无法访问,但服务器仍然可以通过。php或其他服务器端脚本语言

在php中,您可以使用或之类的函数将文件包含在php文件中,甚至可以从包含的文件中执行php代码,或者使用或之类的函数读取文件

但是,如果您不使用任何服务器端脚本,如果您仍然需要用户能够查看文件中的内容,则无法完全避免直接访问这些文件


请注意,并非所有类型的web服务器都支持.htaccess。Apachee支持它,而lighttpd等其他软件则不支持。

如果您不需要直接访问这些文件,只需要从PHP解析,则将这些文件放到web目录之外。如果这些文件不在web目录中(并且您没有在Apache中设置别名路径),那么某一天就不可能有人访问它们

PHP不限于web目录,PHP可以访问服务器中/tmp、/etc/中的文件(事实上这是个问题)。apache用户和组可以读取的每个文件都可以被PHP读取

在PHp上,设置将限制这一点,它是open\u basedir,如果设置了此设置,则您只能访问open\u basedir中继续的目录树中的文件。因此,您可能需要在那里添加模板目录

您可能还需要更改include_dir设置以添加模板位置,并编写更简单的include_once或require_once说明