地址栏没有改变 - PHP

rat*_*eet 2 php apache mod-rewrite wamp

我正在使用标题('Location:')将用户重定向到另一个网页.但是,不是覆盖地址栏上的先前地址,而是将新的地址附加到已存在的地址.例如:

地址栏目前持有:

localhost/v2/admin

并且header('Location:'.DIRADMIN.'login.php'); DIRADMIN是常量定义的

define(DIRADMIN,'localhost/v2/admin/');
Run Code Online (Sandbox Code Playgroud)

然后,在重定向之后,新的地址栏将是

localhost/v2/admin/localhost/v2/admin/login.php
Run Code Online (Sandbox Code Playgroud)

我以为是因为服务器,我正在使用.我正在使用Uniform Server Zero.但后来我安装了WAMP,问题仍在继续.

我仍然是一个菜鸟,我不知道是什么导致这个,如果问题是由于mod_rewrite,那么在两个服务器上模块都是活动的.我已经检查了一些问题,比如 redirect-PHP header(Location:..)

等等.我甚至做了谷歌搜索,但没有尽头.我怎么解决这个问题?

header_remove();
Run Code Online (Sandbox Code Playgroud)

将无法正常工作,因为第一个地址是手动输入的,而不是设置的 header();

Ska*_*ski 7

如果没有http前缀,浏览器会尝试查找相对于当前路径的路径

像这样添加"http://"

header('Location: '.DIRADMIN.'login.php');
Run Code Online (Sandbox Code Playgroud)

如果您希望URL相对于您的域根路径,您只需添加"/"

header('Location: /'.DIRADMIN.'login.php');
Run Code Online (Sandbox Code Playgroud)

您应该始终尝试使用相对路径 - 这样,如果您更改域名,您的代码仍然有效.