如果网址以Content-disposition "attachment"
结尾,我想在回复中发送mp3?dl
标题。
我想在.htaccess
中执行此操作。
我试过了:
<FilesMatch ".mp3?dl$">
Header set Content-disposition "attachment"
</FilesMatch>
有一个WordPress网站在.htaccess
中添加了一些其他内容。如果我在文件末尾添加上面的代码段,则不会进行任何更改。如果它放在文件的顶部,则整个网站以服务器错误结束(500)。
要检查标头是否已添加,请使用curl
:
$ curl -X HEAD -i 'http://example.com/files/audio/ping.mp3?dl'
HTTP/1.1 200 OK
Date: Sun, 22 May 2016 13:34:00 GMT
Server: Apache
Last-Modified: Sun, 22 May 2016 13:21:51 GMT
ETag: "12a...2"
Accept-Ranges: bytes
Content-Length: 76385
Content-Type: application/octet-stream
curl: (18) transfer closed with 76385 bytes remaining to read
我如何在.htaccess
中执行此操作?
答案 0 :(得分:1)
FilesMatch
适用于文件,无法与查询字符串(Could not find any version that matches com.android.support:support-v4:+
)匹配。
要检查查询字符串,通常将RewriteCond
与?dl
一起使用,但无法使用mod_rewrite,AFAIK设置标头。
您可以在QUERY_STRING
内尝试If
并检查您想要的查询字符串,例如
FilesMatch
答案 1 :(得分:-1)
FilesMatch
Directive接受正则表达式作为参数,因此您需要转义.
和?
,同时添加.+
匹配任何文件名,即:
<FilesMatch ".+\.mp3\?dl$">
Header set Content-disposition "attachment"
</FilesMatch>
根据您的评论,您需要将\?
更改为\|
<FilesMatch ".+\.mp3\|dl$">
Header set Content-disposition "attachment"
</FilesMatch>