Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Php 如何阻止对文件夹的访问(内部页面除外)_Php_Mysql_Apache_.htaccess_Http - Fatal编程技术网

Php 如何阻止对文件夹的访问(内部页面除外)

Php 如何阻止对文件夹的访问(内部页面除外),php,mysql,apache,.htaccess,http,Php,Mysql,Apache,.htaccess,Http,我有一个非常简单的页面,用户可以登录并下载pdf。pdf的路径直接从数据库中提取,并回送到链接中。关于我的脚本的一切都很好,除了我需要阻止任何人访问PDF文件夹。我已尝试将htaccess文件添加到pdf目录,其中包含以下内容: Order deny,allow Deny from all Allow from localhost 以及其他一些变化,每次它只是打破了pdf的链接。我做错了什么?回传链接直接获取PDF是不够的Allow from localhost表示服务器可以访问它,但用户不能

我有一个非常简单的页面,用户可以登录并下载pdf。pdf的路径直接从数据库中提取,并回送到链接中。关于我的脚本的一切都很好,除了我需要阻止任何人访问PDF文件夹。我已尝试将htaccess文件添加到pdf目录,其中包含以下内容:

Order deny,allow
Deny from all
Allow from localhost

以及其他一些变化,每次它只是打破了pdf的链接。我做错了什么?

回传链接直接获取PDF是不够的
Allow from localhost
表示服务器可以访问它,但用户不能。因此,您必须制作一种“代理”php脚本,使服务器触发下载:

<?php
$pathToThePdf = $_GET['pdf_path'];

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="mydownload.pdf"');

readfile($pathToThePdf);

如果将
localhost
更改为IP地址或服务器IP,它将正常工作

如果您特别要
http://localhost
您需要使用
::1
,否则使用服务器的IP地址

order deny,allow
deny from all
allow from ::1

您可能需要编写一个php脚本来实际获取pdf并触发下载。回显链接是不够的,因为用户不是本地主机。
order deny,allow
deny from all
allow from ::1