这里没有问题
我正在使用php构建一个交互式网站,我决定做一个交互式菜单.好吧,我的菜单包含一个名为menu.php的文件.
<?php
echo "<ul>
<li><a href='".$_SERVER['SERVER_NAME']."/menu/register.php'>Cadastro</a><br></li>
</ul>";
?>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但是当我点击此链接时,它就像是那样
htpp:// localhost/my_site/localhost /menu/register.php
编辑:我如何删除该额外的localhost?
提前致谢
那是因为你没有使用http://前缀.你必须使用
<li><a href='http://".$_SERVER['SERVER_NAME']."/menu/register.php'></li>
Run Code Online (Sandbox Code Playgroud)
(假设http://您的网站可以使用的唯一协议)
但是,如果您有一个固定的站点结构,请考虑使用同样有效的相对路径,但不要头疼:
<li><a href='/menu/register.php'></li>
Run Code Online (Sandbox Code Playgroud)
$_SERVER['SERVER_NAME'] 仅包含Web服务器/虚拟主机的名称:
'SERVER_NAME'
当前脚本正在其下执行的服务器主机的名称.如果脚本在虚拟主机上运行,则这将是为该虚拟主机定义的值.
在你的情况下它是localhost.并附加类似于/menu/register.php它的路径会产生相对路径:
localhost/menu/register.php
Run Code Online (Sandbox Code Playgroud)
现在,当您在基URI的文档中使用该URI引用http://localhost/my_site/(或具有相同路径前缀的类似URI)时,localhost/menu/register.php客户端将该相对路径解析为:
http://localhost/my_site/localhost/menu/register.php
Run Code Online (Sandbox Code Playgroud)
这就是你获得输出的原因.
那么你究竟想要完成什么?