我试图在这里找到解决方案,但没有。我每天都在与htaccess一起工作,但是我有一个无法解决的问题。
我有目录结构:
/cmd/user_files/**[random_folder]**/avatars/pic.jpg
在/cmd/user_files/
中,我有更多文件夹是在某些应用程序上随机创建的。在每个随机创建的文件夹下,都有一些我不想公开访问的文件和图片,并且我有一个子文件夹“头像”,我只想显示这些文件和图片。jpg
我在.htaccess
中创建了/cmd/user_files/
,并添加了以下内容:
order allow,deny
deny from all
allow from 127.0.0.1
因此,我拒绝访问/cmd/user_files/
下的每个文件和子文件夹。
现在,我需要添加到此.htaccess
中,才能显示.jpg
的内容
/cmd/user_files/[random_folder]/avatars/*.jpg
答案 0 :(得分:1)
代替使用mod_auth ...可能更容易使用mod_rewrite。例如,在/cmd/user_files/.htaccess
文件中:
RewriteEngine On
RewriteRule !^[^/]+/avatars/.*\.jpg$ - [F]
这会阻止(禁止访问403)所有文件/文件夹,但不包括与正则表达式^[^/]+/avatars/.*\.jpg$
(相对于/cmd/user_files/
子目录)匹配的URL路径。
更新:请注意!
模式上的RewriteRule
前缀-此否定正则表达式。这是一个Apache运算符,它不是regex本身的一部分。
旁注... order allow,deny
是Apache 2.2指令。如果您使用的是Apache 2.4+,则语法会有所不同。