最近我在将文件上传到新服务器时遇到了奇怪的问题。
我正在使用$ _SERVER ['REQUEST_URI']查找当前页面位置并添加一些参数和重定向,如下所示:
<a href="<?php echo $_SERVER['REQUEST_URI'].'&action=edit&uin=1';?>">Edit</a>
它可以在我的本地计算机上正常工作并重定向到我的页面:
localhost/admin/home.php?module=Pages&action=edit&uin=1
和我的标签:
<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
导致重定向到无效页面...
所以想知道哪个服务器设置正在创造这种差异?
我们如何解决它?两者都相同
答案 0 :(得分:2)
PHP文档可以告诉你区别:
当前的文件名 执行脚本,相对于 文件根。例如, $ _SERVER ['PHP_SELF']在脚本中 地址 http://example.com/test.php/foo.bar 将是/test.php/foo.bar。该 FILE 常量包含当前的完整路径和文件名(即 包括)文件。如果PHP正在运行 命令行处理器这个变量 包含自PHP以来的脚本名称 4.3.0。以前它不可用。
包含当前脚本的路径。 这对需要的页面很有用 指向自己。 文件 常量包含完整路径和 当前的文件名(即 包含)文件。
为了给出的URI 访问此页面;例如, '/index.html'