这样做不好吗?
的index.php
<img src = "image.php"/>
image.php
header('location: /location/to/another/image.jpg');
你可能正在考虑这种想法“他为什么要这么做”。以上只是我正在做的一个简单场景,我只是想知道这样做是否“可接受”?
答案 0 :(得分:4)
当然,你可以这样做,但你可能会注意到PHP也可以只返回图像的字节和相应的标题(内容类型等);如果您所追求的只是让您的图像请求由PHP“解析”。所以你的image.php请求可能是唯一的请求。
上的示例脚本答案 1 :(得分:1)
它并不可怕,但大多数建议不要在你不需要时重定向链接/网址,因为它会减慢页面加载速度(就像做两个ping而不是一个乘以每个图像一个)
还建议将您的网络服务器配置为执行此类操作。我使用nginx,我已经为一个站点的一部分做了这个(它确认用户已登录以查看他们未发布的文件)。但这是使用x-accel-redirect标头,它不是真正的重定向,而只是告诉服务器它应该提供该特定文件。
答案 2 :(得分:0)
这取决于有多少用户访问此页面。正如 acidzombie24 所提到的,这样的重定向会降低服务器的速度。但是,当您的服务器配置正确且支持Connection: keep-alive
时,它不需要第二个连接,而只需要同一连接中的第二个请求。
答案 3 :(得分:0)
根据我的理解,您试图通过在网址末尾添加唯一ID来阻止浏览器缓存这些图片。
当您重定向时,您会告诉标题中的浏览器忘记此请求并向另一个URL发起请求,因此您将收到每个图像请求的两个请求。
而不是强制浏览器在image.php
中重定向,您只需加载图像文件,它将具有与重定向浏览器(即没有缓存)相同的效果,但不需要另一个请求。
在HTML中:
<img src="image.php?id=whatever" />
在image.php
:
readfile( 'location/to/another/image.jpg'); // local file system path needed
完成。没有浏览器缓存,也没有其他请求的额外开销。