Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Php 将图像URL请求重定向到另一个,而不更改URL_Php_.htaccess_Redirect - Fatal编程技术网

Php 将图像URL请求重定向到另一个,而不更改URL

Php 将图像URL请求重定向到另一个,而不更改URL,php,.htaccess,redirect,Php,.htaccess,Redirect,在我的站点上进行漏洞审计后,我发现一个错误的图像具有类似于ABC.php.jpg的扩展名 我已将其重命名为ABC.jpg 现在的问题是,已经发送了大约10万封邮件,我们保留了邮件的日志(将全部内容保存在DB中),并在需要时提供给更高的权威机构(使用DB中的内容触发邮件) 所以我不能在每封邮件中都更改URL。我想要的是,通过URLABC.php.jpg访问URL(ABC.jpg)。 我已经用htaccess文件实现了一些规则,但它们只是重定向URL,这样邮件中的图像就不会加载。如果希望脚本加载图像

在我的站点上进行漏洞审计后,我发现一个错误的图像具有类似于
ABC.php.jpg的扩展名
我已将其重命名为
ABC.jpg
现在的问题是,已经发送了大约10万封邮件,我们保留了邮件的日志(将全部内容保存在DB中),并在需要时提供给更高的权威机构(使用DB中的内容触发邮件)

所以我不能在每封邮件中都更改URL。我想要的是,通过URL
ABC.php.jpg
访问URL(ABC.jpg)。
我已经用htaccess文件实现了一些规则,但它们只是重定向URL,这样邮件中的图像就不会加载。

如果希望脚本加载图像,可以在ABC.jpg.php中执行以下操作:

<?php

echo file_get_contents("path/to/abc.jpg");

我猜你的mod_重写规则中有重定向标志[R]

例如:

RewriteRule ^ABC.php.jpg $1/ABC.jpg [R=301,L]
只需删除该标志,它就可以加载内容而无需重定向

RewriteRule ^ABC.php.jpg $1/ABC.jpg [L]

根据jeprubio的回答,我发现我们通常使用这个htaccess规则

 RewriteRule ^ABC.php.jpg $1/images/ABC.jpg [R=301,L]
其中R用于重定向,L用于停止进一步处理规则集,因此基本上,如果我们从规则中删除R规则,它将不会重定向到新的URL。 取而代之的是,它将在点击旧URL的同时提供来自新URL的响应,因此最终规则如下所示

RewriteRule ^ABC.php.jpg $1/images/ABC.jpg [L]

你能发布一些相关的.htaccess规则吗?重定向302/ABC.php.jpg/ABC.jpg这将重定向URL,这是一个不同的方面。我是这样做的:重写规则^ABC.php.jpg$1/ABC.jpg[L]它不会伤害任何其他URL,对吗?是的,它只影响与
^ABC.php.jpg
模式匹配的URL。很乐意帮忙
RewriteRule ^ABC.php.jpg $1/images/ABC.jpg [L]