.htaccess如果条件设置允许文件下载

时间:2014-11-07 00:27:30

标签: regex apache .htaccess mod-rewrite

我目前有当前规则允许文件查看

RewriteRule ^ios/headers/([0-9]*\.[0-9]+|[0-9]+)/(.*).h$ /ios/headers/view.php?ios=$1&file=$2.h [L]

我有一个头文件列表,我想把它们放在查看器中,除非我设置了?raw = yes标签,然后我希望用户能够下载它(实际上是去文件)。

我将如何实现这一目标?

有更好的方法吗? .htaccess甚至这个强大吗?

1 个答案:

答案 0 :(得分:1)

您可以检查" raw = yes"使用RewriteCond

RewriteCond %{QUERY_STRING} !raw=yes
RewriteRule ^ios/headers/([0-9]*\.[0-9]+|[0-9]+)/(.*).h$ /ios/headers/view.php?ios=$1&file=$2.h [L]

然后规则不会被应用,请求不会被重写为view.php。但是,假设您直接访问:/ios/headers/123.234/foo.h,则实际下载foo.h。否则,您需要在view.php中为raw=yes参数添加代码并强制下载。