Php Wordpress:只有登录的用户才能访问文件-以及服务器本身
我的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
.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);