是否可以将图像重定向到动态生成的图像(使用PHP)?
我有一个动态创建的图像,它有一个扩展名“.PHP”(显然),该服务器不受我的控制。所以我想将“somename.jpg”(在我的服务器上)重定向到“remoteserver / dynamicimage.php”(在我不能控制的某个远程服务器上),以便我可以立即将其链接为<img src="somename.jpg"/>
和动态显示生成的图像。
如果可能,请告诉我。
答案 0 :(得分:2)
尝试在.htaccess文件中添加类似的内容
RewriteEngine on
RewriteRule ^(.*)\.jpg$ /scripts/$1.php
答案 1 :(得分:2)
浏览器会跟踪图像的重定向。创建一个名为“somename.jpg”的php文件并添加:
<?php
header('Location: http://www.otherserver.com/image.php');
在.htaccess文件中使用Apache指令ForceType告诉服务器将.jpg文件作为php处理:
<Files somename.jpg>
ForceType application/x-httpd-php
</Files>
如果你真的不需要.jpg扩展名,只需调用somename.php文件。
您也可以使用mod_alias来完成此操作,但我还没有尝试过:
Redirect somename.jpg http://www.otherserver.com/image.php
这也会出现在.htaccess文件中。
答案 2 :(得分:2)
标头功能控制HTTP标头,浏览器使用它来确定文件类型(或者在任何情况下都应该。)它可以用来告诉浏览器脚本正在生成要下载的图像文件,而不是HTML脚本输出:
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="somename.jpg"');
答案 3 :(得分:1)
可能会导致HTTP重定向:
RewriteEngine on
RewriteRule ^somename\.jpg$ http://remoteserver/dynamicimage.php [L]
答案 4 :(得分:0)
另一个更复杂但令人难以置信的强大方法是编写一些处理程序代码,该代码会为此本地图像位置URL激活。
这个将从外部URL获取数据并输出具有正确mime类型的数据。
您还可以根据可行的方法编写一些缓存此数据的代码。
通过这种方式,您永远不会泄露图像的真实位置,甚至可以使用一些秘密凭据,例如logindata或第三方Cookie,这些凭据不应出现在您的网站上。
所有这些都很难在apache配置中简单地配置重定向。如果url会泄露私人信息,我们会做这样的事情。