Php $\u SERVER[';REQUEST#u URI';]未返回服务器名

Php $\u SERVER[';REQUEST#u URI';]未返回服务器名,php,apache2,Php,Apache2,最近我在将文件上传到新服务器时遇到了一个奇怪的问题 我正在使用$\u SERVER['REQUEST\u URI']查找当前页面位置,并添加一些参数和重定向,如下所示: <a href="<?php echo $_SERVER['REQUEST_URI'].'&action=edit&uin=1';?>">Edit</a> 还有我的标签: <a href="http://localhost/sitename/admin/home.php

最近我在将文件上传到新服务器时遇到了一个奇怪的问题

我正在使用$\u SERVER['REQUEST\u URI']查找当前页面位置,并添加一些参数和重定向,如下所示:

<a href="<?php echo $_SERVER['REQUEST_URI'].'&action=edit&uin=1';?>">Edit</a>
还有我的标签:

<a href="http://localhost/sitename/admin/home.php?module=Pages&action=edit&uin=1">Edit</a>

但在我的测试服务器中,它生成了不带servername的url,因此类似于:

<a href="http://admin/home.php?module=Pages&action=edit&uin=1">Edit</a>

并重定向到:
http://admin/home.php?module=Pages&action=edit&uin=1
结果重定向到无效页面

想知道是哪种服务器设置造成了这种差异


我们如何解决这个问题?PHP文档可以告诉您两者的区别:

“PHP_SELF” 当前文件的文件名 执行脚本,相对于 文档根目录。例如, $\u服务器['PHP\u SELF']在 地址 应该是/test.php/foo.bar。这个 FILE常量包含当前文件的完整路径和文件名(即。 包括)文件。如果PHP是作为 命令行处理器将此变量 包含自PHP以来的脚本名称 4.3.0. 以前没有

“脚本名称” 包含当前脚本的路径。 这对于需要修改的页面非常有用 指向他们自己。文件 常量包含完整路径和 当前文件的文件名(即。 包括)文件

“请求URI” 提供的URI是为了 访问此页面;例如, “/index.html”


PHP引擎前面的代理。你没听懂吗?那我们怎么解决呢?根据您的示例$\u服务器['REQUEST\u URI']的结果sameac有
“http://admin/home.php?module=Pages“
是的,它返回与您所说的相同的结果,但在本地它变成“>但在服务器>中阅读此内容
<a href="http://admin/home.php?module=Pages&action=edit&uin=1">Edit</a>