.htaccess 将图像文件重写为 php 脚本 -> 显示损坏的图像链接

用户2369559

这是我现在所拥有的

.htaccess

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com/.$ [NC]
RewriteRule \.(jpg|jpeg|png|gif)$  /getAccess.php?image=$1 [NC,F,L]

/getAccess.php

<?php
$result = $_GET['image'];
?>
<img src="<?php echo $result; ?>.jpg">

当我尝试到达时:

http://www.example.com/10.jpg

它显示我无法访问 403,这很好。但我的问题是当我试图达到:

http://www.example.com/getAccess.php?image=10

我试图通过 PHP 文件加载图像,但它显示了一个损坏的图像链接。

怀特先生
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com/.$ [NC]
RewriteRule \.(jpg|jpeg|png|gif)$  /getAccess.php?image=$1 [NC,F,L]

这不会将图像重写为 PHP 脚本(正如您的标题所暗示的),它只是阻止访问(这是您看到的 403)。但是,这不会像您建议的那样阻止“直接访问”?通过“直接访问”,我们的意思是直接在浏览器地址栏中输入URL——此时 HTTP Referer 为空并且您的指令不被处理(由第一个条件排除)。它会阻止来自外部站点的直接链接(提供 HTTP Referer 传递),但基于 HTTP Referer 控制访问充其量是不可靠的。

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com/.$ [NC]

要解决您当前的问题,您可以尝试.$从上述CondPattern的末尾删除因为这将阻止所有不是单个字符的内部引用(这就是一切)。


要阻止访问您的图像文件,您可以将RewriteRule指令更改为:

RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F]

这实际上与您发布的内容相同。在您的指令中,该/getAccess.php?image=$1部分(即替换)只是被忽略了 - 这就是F标志的作用。在这种情况下,您应该只使用连字符替换

另一方面,要将对图像文件的请求重写/getAccess.php脚本中,您需要执行以下操作(尽管这自然会与上述“禁止”此类请求的指令发生冲突):

RewriteRule (.+)\.(?:jpe?g|png|gif)$  /getAccess.php?image=$1 [NC,L]

在您的原始指令中, the$1只是对文件扩展名(即“jpg”、“jpeg”、“png”等)的反向引用,这似乎不是本意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

htaccess:将图像路径重定向到PHP脚本

来自分类Dev

htaccess:将图像路径重定向到PHP脚本

来自分类Dev

htaccess将日志重写为多个php文件

来自分类Dev

htaccess文件的链接样式和脚本问题

来自分类Dev

无法使用PHP脚本显示图像

来自分类Dev

.htaccess网址:在本地主机Xampp上重写丢失的CSS CSS和图像文件

来自分类Dev

.htaccess RewriteRule还重写了我的CSS,JS和图像文件。如何忽略这些?

来自分类Dev

图像裁剪脚本现在显示断开的链接

来自分类Dev

htaccess的新图像文件夹

来自分类Dev

我的PHP脚本正在上传不完整的图像文件

来自分类Dev

PHP脚本,显示文件夹中的图像

来自分类Dev

用Gimp脚本编辑图像文件

来自分类Dev

用htaccess将.php重写为目录

来自分类Dev

htaccess将.php重写为.html

来自分类Dev

使用PHP和MySQL将图像显示为链接

来自分类Dev

将文件(图像)的编辑数组发送到php脚本

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

将图像文件从 angular 发送到 php

来自分类Dev

PHP随机图像脚本的麻烦

来自分类Dev

破碎的图像符号(PHP 脚本)

来自分类Dev

.htaccess重写除图像,脚本和样式表以外的所有内容

来自分类Dev

htaccess:禁止使用所有pdf文件,但允许使用php脚本(文件下载脚本)

来自分类Dev

htaccess:禁止使用所有pdf文件,但允许使用php脚本(文件下载脚本)

来自分类Dev

htaccess将url文件夹/文件重写为folder / file.php

来自分类Dev

在laravel中定义通过timthumb php脚本显示图像的路线

来自分类Dev

如何显示使用此PHP脚本上传的图像?

来自分类Dev

如何显示使用此PHP脚本上传的图像?

来自分类Dev

每当将新图像添加到服务器存储的图像文件夹时,如何使用PHP或任何其他服务器端脚本创建自动html标签。

Related 相关文章

  1. 1

    htaccess:将图像路径重定向到PHP脚本

  2. 2

    htaccess:将图像路径重定向到PHP脚本

  3. 3

    htaccess将日志重写为多个php文件

  4. 4

    htaccess文件的链接样式和脚本问题

  5. 5

    无法使用PHP脚本显示图像

  6. 6

    .htaccess网址:在本地主机Xampp上重写丢失的CSS CSS和图像文件

  7. 7

    .htaccess RewriteRule还重写了我的CSS,JS和图像文件。如何忽略这些?

  8. 8

    图像裁剪脚本现在显示断开的链接

  9. 9

    htaccess的新图像文件夹

  10. 10

    我的PHP脚本正在上传不完整的图像文件

  11. 11

    PHP脚本,显示文件夹中的图像

  12. 12

    用Gimp脚本编辑图像文件

  13. 13

    用htaccess将.php重写为目录

  14. 14

    htaccess将.php重写为.html

  15. 15

    使用PHP和MySQL将图像显示为链接

  16. 16

    将文件(图像)的编辑数组发送到php脚本

  17. 17

    使用PHP将单个图像文件上传到FTP

  18. 18

    使用PHP将单个图像文件上传到FTP

  19. 19

    将图像文件从 angular 发送到 php

  20. 20

    PHP随机图像脚本的麻烦

  21. 21

    破碎的图像符号(PHP 脚本)

  22. 22

    .htaccess重写除图像,脚本和样式表以外的所有内容

  23. 23

    htaccess:禁止使用所有pdf文件,但允许使用php脚本(文件下载脚本)

  24. 24

    htaccess:禁止使用所有pdf文件,但允许使用php脚本(文件下载脚本)

  25. 25

    htaccess将url文件夹/文件重写为folder / file.php

  26. 26

    在laravel中定义通过timthumb php脚本显示图像的路线

  27. 27

    如何显示使用此PHP脚本上传的图像?

  28. 28

    如何显示使用此PHP脚本上传的图像?

  29. 29

    每当将新图像添加到服务器存储的图像文件夹时,如何使用PHP或任何其他服务器端脚本创建自动html标签。

热门标签

归档