PHP:摆脱 href 路径中的本地主机和域名


PHP: Getting Rid of localhost and Domain Name in href Path

我在家里托管一个网站。 我的系统有两层:一个 Web 服务器(运行 Ubuntu 11.04(,通过端口 80 进行端口转发,并且在 var/www 上只有索引.php 和一个应用程序服务器(运行 Ubuntu 11.10(,它有其他所有内容,并设置为仅与 Web 层服务器通信。

index.php 具有以下代码行。

 <li><a href="192.168.1.4/about.php">About</a></li>

这是一个应该调用的菜单项.php它位于本地 IP 地址为 192.168.1.4 的应用程序服务器上的 var/www 中。 但是,当我单击与此菜单项关联的按钮时,它会尝试访问 http://localhost/192.168.1.4/about.php 并给出错误消息

 The requested URL /192.168.1.4/about.php was not found on this server.

如果我转到地址框并手动删除 http://localhost/部分,使地址框仅显示 192.168.1.4/about.php则会显示应用程序服务器上的 about.php 页面。 随后,当我单击与索引关联的菜单按钮时.php一切正常。 似乎它首先将 http://localhost/添加到指定的地址,直到我手动删除它,然后默认情况下将其排除在外。

当我尝试从另一台计算机访问我的网站时,真正的问题就来了。 我输入我的域名,比如 whatever.com,然后显示索引.php页面。 但是,当我单击菜单按钮时,它会尝试访问 http://whatever.com/192.168.8.1.4/about.php 并给出错误消息。 当我转到URL框并手动删除 http://whatever.com/时,一切正常。 但是,我不希望用户必须这样做。 另外,我是从家庭网络上的另一台计算机上执行此操作的,因此我不确定远程计算机会发生什么。

让索引.php文件简单地使用 192.168.1.4/about.php

而不是 localhost/192.168.1.4/about.php、whatever.com/192.168.1.4/about.php 等的最佳方法是什么。

提前非常感谢,

彼得。

您忘记在 URL 中添加方案。用:

<li><a href="http://192.168.1.4/about.php">About</a></li>

或:

<li><a href="//192.168.1.4/about.php">About</a></li>