用于文件下载的Apache httpd重写规则,该文件未正确命名

时间:2015-10-28 09:16:05

标签: apache .htaccess mod-rewrite downloading

我在apache httpd 2.2中使用重写规则来使用此URL下载文件

http://<MYHOSTNAME>/?crlname=CRLNAME

此网址应重写为http://<MYHOSTNAME>/crl/CRLNAME.crl

RewriteEngine On
RewriteCond %{QUERY_STRING} crlname=([\w\d-]+) [NC]
RewriteRule ^/?$ /crl/%1.crl [L]

我遇到的问题是,在浏览器中输入http://<MYHOSTNAME>/?crlname=CRLNAME时,会下载文件,但文件名错误。 它应该是CRLNAME.crl但它的null。

1 个答案:

答案 0 :(得分:0)

在此处找到解决方案http://www.xoogu.com/2011/htaccess-rule-to-prompt-file-download/

标题必须与内容处理一起使用,文件名由第二个重写规则在环境变量中设置。

RewriteCond %{QUERY_STRING} crlname=([\w\d-]+)
RewriteRule ^/?$ /crl/%1.crl
RewriteRule ([^/]*)$ - [L,E=filename:$1]
Header onsuccess set Content-disposition "attachment; filename=%{filename}e"