PHP假url解析为GET或类似

PHP假url解析为GET或类似,php,laravel,rest,url,get,Php,Laravel,Rest,Url,Get,今年早些时候我与laravel合作过,我喜欢使用url访问REST客户端的想法。我想知道我如何能够从不存在的URL重定向到现有的URL,并保留获取的数据 在当前的php实现中,这可能吗 提前谢谢 编辑: 例如,假设我希望允许登录用户下载文件。所述文件将从以下url下载:http://example.ex/image.png 但是如果我把image.png放到我的Web服务器的根目录中,任何人都可以下载它,因为它是一个直接链接。我如何使用相同的URL,但要为index.php提供$_GET['UR

今年早些时候我与laravel合作过,我喜欢使用url访问REST客户端的想法。我想知道我如何能够从不存在的URL重定向到现有的URL,并保留获取的数据

在当前的php实现中,这可能吗

提前谢谢

编辑: 例如,假设我希望允许登录用户下载文件。所述文件将从以下url下载:http://example.ex/image.png
但是如果我把image.png放到我的Web服务器的根目录中,任何人都可以下载它,因为它是一个直接链接。我如何使用相同的URL,但要为index.php提供$_GET['URL']=image.png,这样,如果用户登录,我就可以给用户提供一个临时下载链接。

您可以在php中这样做,我不编写Laravel

 $arr_url = parse_url('http://example.com/old_location?foo=bar');
 $query = !empty($arr_url['query']) ? '?'.$arr_url['query'] : '';

 header("Location: http://example.com/new_location{$query}");
 exit;
或者您可以使用$\u服务器,我忘了它是否包含

两件重要的事情

在调用报头之前没有输出,甚至没有一个空格 使用标头后调用exit。 从不存在的URL

正如我所说的,我不使用Laraval,所以我不能谈论它如何处理404,所以你需要在处理404的控制器中进行重定向,这需要一些逻辑来决定是否重定向

更新


我想用PHP实现,但如果我的URL以image.png结尾不是有效的PHP文件,那么这并没有真正的帮助

说accessrest意味着它将是一个PHP文件。如果您只是想查找文件是否存在并重定向,那么请使用HTACCESS

#if not is a real file
RewriteCond %{REQUEST_FILENAME} !-f
//redirect
您如何决定重定向到哪里是一个开放的问题,因为这是一个广泛的问题,我可以给出一个具体的答案

最后一件事是您的.png示例。可以使用.php文件返回具有正确标题的图像数据。我曾经构建了一个站点,将用户图像存储在Zip文件中,然后通过从Zip no temp文件流式传输文件内容,仅在用户登录时显示图像


服务器返回的所有内容都是文本,将其视为图像的唯一原因是Apache知道.png的内容头应具有以下内容类型:image/jpng或类似内容。在PHP中可以伪造的东西。

当然,在当前的PHP实现中也有可能。但如果没有任何代码,就很难给出答案。我还没有任何代码,因为我目前正试图弄清楚如何从那开始。将用一个示例编辑我的问题要回答您的问题,是的,这是可能的。您的第一步是查看。@Ibu我会的,谢谢。你能把它改成一个答案吗,这样我就可以把它标记为已回答了吗?我想用PHP来做,但是如果我的URL以image.png结尾不是一个有效的PHP文件,这并没有真正的帮助。access REST这意味着它是一个PHP文件。如果不是,那么您可以使用HTACCESS,但您必须确定什么是有效的URL。唯一的症结在于决定将其发送到哪里,并捕获404并将其发送到可以做出决定的地方。
#if not is a real file
RewriteCond %{REQUEST_FILENAME} !-f
//redirect