Php Wordpress:只有登录的用户才能访问文件-以及服务器本身

Php Wordpress:只有登录的用户才能访问文件-以及服务器本身,php,wordpress,.htaccess,Php,Wordpress,.htaccess,我的Wordpress上载文件夹中有一个.htaccess脚本,我只允许登录用户查看文件,以防止用户共享指向仅限成员的区域的链接 我的问题是,我有一个ZIP功能,可以访问文件夹,但这不能一起工作 .htaccess: RewriteCond %{REQUEST_FILENAME} ^.*(mp3|m4a|jpeg|jpg|gif|png|bmp|pdf|doc|docx|ppt|pptx|)$ RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_i

我的Wordpress上载文件夹中有一个
.htaccess
脚本,我只允许登录用户查看文件,以防止用户共享指向仅限成员的区域的链接

我的问题是,我有一个ZIP功能,可以访问文件夹,但这不能一起工作

.htaccess:

 RewriteCond %{REQUEST_FILENAME} ^.*(mp3|m4a|jpeg|jpg|gif|png|bmp|pdf|doc|docx|ppt|pptx|)$
 RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
 RewriteRule . - [R=403,L]
ZIP功能:

    global $current_user;
    get_currentuserinfo();

    $files = $allAssetFiles;
    $zip = new ZipArchive();
    $zip_name = "downloads/" . $current_user->display_name . time() . ".zip"; // Zip name
    $zip->open($zip_name,  ZipArchive::CREATE);
    foreach ($files as $file) {
        $path = $file;
        $zip->addFromString(basename($path), file_get_contents($path));
    }
    $zip->close();
给出错误的行是:

$zip->addFromString(basename($path), file_get_contents($path));
它本身的错误是:

警告: 文件获取内容() [function.file get contents]:无法打开流:HTTP请求 失败!HTTP/1.1 403在中被禁止 /第41行的Users/user/project/wp content/themes/root/templates/sortbar.php

如何允许从我的服务器访问?

有两种可能:

1:向.htaccess添加允许从服务器访问的条件。这可能是这样的:

RewriteCond %{REMOTE_ADDR} ^!1\.2\.3\.4$
(未经测试,这只是给你一个想法)

2:使用文件系统上的直接路径

而不是

http://domain.dev/wp-content/uploads/2014/05/7.-APPROACH-TO-BLOGGERS-KOLs.pdf 
使用

您只需添加以下内容即可完成此操作:

$path = str_replace("http://domain.dev", "/path/to/your/wordpressdir", $file);

我更喜欢这个版本,因为通过httpd再次下载文件只是为了压缩它们,这只会增加开销。

你能详细说明一下“压缩功能”是如何工作的吗?.htaccess文件不应影响服务器上的直接文件访问。确实。。。编辑…:-)您正在通过HTTP访问您自己服务器上的文件,并将它们放在同一服务器上的脚本中的zip文件中?天哪,这是最糟糕的性能…在你回答之前,我准确地提出了这一点,我接受的是你的最后一个建议,但是使用了
explode
。谢谢你!:-)
$path = str_replace("http://domain.dev", "/path/to/your/wordpressdir", $file);