我正在使用此变量来获取当前页面网址,如下所示:
$request = $_SERVER["REQUEST_URI"];
$page = (is_ssl() ? 'https' : 'http').'://';
if ($_SERVER["SERVER_PORT"] != "80")
$page .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$request;
else $page .= $_SERVER["SERVER_NAME"].$request;
该应用。我这样做是公开的,问题是在某些网站上(非常罕见)这个变量返回整个URL,包括域名,而不仅仅是请求的页面。这是服务器配置错误吗?
答案 0 :(得分:2)
可能是您的代码(或第三方软件包)中某处正在更改此变量。
你可以grep
。
grep -r -E '\$_SERVER\[[\'"]?REQUEST_URI[\'"]?\]\s?=[^=]+?'
例如,正则表达式应该找到分配$_SERVER['REQUEST_URI]
的位置,而不仅仅是正常使用或测试相等性。另请注意,我删除了-i
标记,因为PHP variables are case sensitive和so are array keys。