Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用.htaccess根据文件大小阻止对文件的访问?_.htaccess_Limit - Fatal编程技术网

是否可以使用.htaccess根据文件大小阻止对文件的访问?

是否可以使用.htaccess根据文件大小阻止对文件的访问?,.htaccess,limit,.htaccess,Limit,特别是,我需要拒绝访问大照片(大于1mb)。我不能拒绝访问文件夹中的所有图像,因为引擎(WP)从同一文件夹中获取更小、大小更大的图像。我想,如果有办法限制对文件类型的访问,也许基于文件大小限制访问也是一样的。有吗?不幸的是,这是不可能的。您无法检查文件大小,因为在加载图片之前,使用了.htaccess文件。 但是可以为此创建一个php文件。如果像“file.php?urlToImage=myImage.jpg”那样加载,脚本将检查大小,如果足够小,则将显示图像。否则,它可能会显示一条短警告,以阻

特别是,我需要拒绝访问大照片(大于1mb)。我不能拒绝访问文件夹中的所有图像,因为引擎(WP)从同一文件夹中获取更小、大小更大的图像。我想,如果有办法限制对文件类型的访问,也许基于文件大小限制访问也是一样的。有吗?

不幸的是,这是不可能的。您无法检查文件大小,因为在加载图片之前,使用了.htaccess文件。

但是可以为此创建一个php文件。如果像“file.php?urlToImage=myImage.jpg”那样加载,脚本将检查大小,如果足够小,则将显示图像。否则,它可能会显示一条短警告,以阻止所有原始图像使用:

RewriteEngine On
RewriteBase /path/to/image-folder

RewriteCond $0 !-([0-9]+)x([0-9]+)\.jpg$
RewriteRule ^(.*\.jpg)$ - [F]

WP是否在url中添加类似
small
的内容?也许您可以使用此选项来过滤原始图像而不是调整大小的图像。WP会将新的分辨率添加到文件名中,例如-“original_filename-600x465.jpg”如果用户将原始图像命名为“myImage-600x465.jpg”(即使这不是真正的分辨率),这将没有帮助。但是如果用户不知道你的重写规则,他们就不太可能尝试这个。因此,这比什么都不做要好,但不是100%安全的。这是否意味着如果请求的文件名末尾不包含000x000.jpg,访问将被拒绝?这可能可行,因为原始文件名(通常)在名称中没有指定解析。WP调整图像大小并为较小的副本添加分辨率。因此,如果用户打开一个小图像的url,然后试图通过从文件名中删除000x000来下载原始图像,htaccess将不允许这样做,对吗?不幸的是,放置在包含图像的文件夹中的代码没有任何效果。您是正确的。它禁止所有jpg图像,但以
-000x000.jpg
结尾的图像除外。至于它不起作用;试试我在上面做的编辑。效果很好!之前并没有,只是因为引擎没开。非常感谢。我将测试它是否会干扰新图像的上传,并在稍后发布结果。再次感谢。这并不妨碍WP在上传时将lage图像重新压缩到更小的版本。它工作得非常好,我不认为有办法在未经许可的情况下下载大型图片。非常感谢。