PHP $ _SERVER ['REQUEST_URI']返回404'd文件

时间:2013-03-07 16:01:00

标签: php

我在这里遇到一个奇怪的问题。

我在我的网站的每个页面上将会话变量设置为$_SERVER['REQUEST_URI']的值,但登录页面除外。这样我就可以在登录前将用户重定向回他们所在的任何页面。

它在每种情况下都能正常工作,除了最近我在页脚和图像404中打破了图像。现在,$_SERVER['REQUEST_URI']似乎抓住了无法加载的图像的URL而不是用户所在的页面,因此我的登录表单现在正在尝试将用户重定向到不存在的图像。

显然,拥有无法加载的文件并不理想,但有谁知道为什么这个服务器变量会获取最后一个失败请求的值而不是当前页面?

1 个答案:

答案 0 :(得分:2)

您已在mod_rewrite中配置.htaccess以通过php脚本处理不存在的文件。

由于您的图像已消失,因此与此图像匹配的URI也由此脚本处理,该脚本将$_SERVER['REQUEST_URI']存储到会话中。因此,它存储所请求页面的URI,然后按请求和不存在的图像URI重写它,因为浏览器请求资源。

要解决此问题,您必须先过滤图像,css,javascript的网址,然后再将其存储到会话中,或者避免情况指向生成的网页中不存在的资源。