我有以下代码:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);
上面的代码工作正常,但它没有向浏览器发送文件大小。
我发现我的htaccess中的后续内容导致了问题。当我删除这部分。我的代码按预期工作。如果我添加此行,则不显示大小。那么如何才能在特定文件夹中禁用此htaccess。
Options -Indexes
####################
# GZIP COMPRESSION #
####################
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
Header append Vary User-Agent env=!dont-vary
答案 0 :(得分:0)
如果要禁用重写规则,则可以将.htaccess文件放在包含RewriteEngine On
的子文件夹中,并且将禁用(在技术上,替换)父文件夹的规则。
同样,如果要禁用子文件夹的身份验证,可以创建包含Satisfy Any
的.htaccess。
.htaccess规则向上级联,因此Apache将在当前文件夹中查找.htaccess文件并使用其规则,然后检查父文件夹等。