我在包含子文件夹的文件夹中有这个.htaccess文件。我目前已禁用直接访问这些子文件夹中的.zip文件的功能,如下所示:
Options -Indexes
deny from all
<FilesMatch '\.(jpg|jpeg|png|gif|mp3|ogg)$'>
Order Allow,Deny
Allow from all
</FilesMatch>
问题是我只想在查询字符串上有?access=allow
时才允许访问这些.zip文件。
我尝试在文件末尾添加以下内容:
RewriteCond %{QUERY_STRING} (?:^|&)(access=allow)(?:&|$) [NC]
RewriteRule ^(.*)$ - [R=404,L,NC]
它根本没有用。
我该怎么做?
答案 0 :(得分:1)
您可以将此规则用作您的第一条规则:
RewriteEngine On
RewriteCond %{THE_REQUEST} \.(jpe?g|png|gif|mp3|ogg)[?\s] [NC]
RewriteRule ^ - [L]
RewriteCond %{QUERY_STRING} (?:^|&)access=allow(?:&|$) [NC]
RewriteRule \.zip$ - [L,NC]
RewriteRule ^ - [F]
答案 1 :(得分:0)
要仅在查询字符串中存在 access = allow perameter时才允许访问.zip文件,您可以使用:
RewriteEngine on
RewriteCond %{QUERY_STRING} (?:^|&)(access=allow)(?:&|$) [NC]
RewriteRule \.zip - [L]
并禁止访问其他扩展程序,请添加以下规则:
RewriteRule \.(jpeg|gif|zip)$ - [F]