htaccess 损坏的文件名 space

htaccess broken filename with space

我不知道如何使带有 space 的文件名在下载时正确命名。该名称在第一个 space 处被破坏。例如。文件

how are you.pdf

下载为

how

下面是我的代码。我已经尝试了很多东西并且 none 已经成功了。

RewriteEngine On
##RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?consciousnesscoachingacademy.com [NC]
RewriteRule \.(.*)$ - [NC,F,L]

RewriteCond %{QUERY_STRING} ^filename=(.*)$
RewriteRule ^download\.php$ %1
RewriteRule (.*) - [E=file:]
Header set Content-type "octet-stream"
Header set Content-disposition "attachment; filename=%{file}e" env=file

试试这个代码:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?consciousnesscoachingacademy.com [NC]
RewriteRule \.(.*)$ - [NC,F,L]

# file download (attachment)
RewriteCond %{THE_REQUEST} /download\.php\?filename=(.+)\ HTTP/ [NC]
RewriteRule ^download\.php$ %1? [E=file:%1]

Header set "Content-disposition" "attachment; filename=\"%{REDIRECT_file}e\""
Header set "Content-type" "octet-stream"