2012-02-09 62 views
0

这是我的导航页面的一部分,但它会将我发送到mysite.com/mysite.com/myfolder。 PHP如何在网站上显示导航页面如果我不知道网站名称,例如www.randomsite.com

<a href ="<?php echo "http://".$_SERVER['SERVER_NAME']."/myfolder.php"; ?>">home</a> 

问题#1:有时$_SERVER['SERVER_NAME']打印mysite.com有时它打印www.mysite.com。即时通讯不知道这可能是一个问题,但我希望它总是打印相同的东西,所以我不会遇到未来的奇怪问题。

问题2:我不知道这个网站的名字,所以我需要时,他们添加此文件上的导航主页按钮,将它们发送到theirsite.com/myfolder/index

回答

2

使用相对URL。不要将链接指向http://mysite.com/myfolder.phphttp://www.mysite.com/myfolder.php,请将链接指向/myfolder.php。浏览器知道主机是www.mysite.com,并且协议是HTTP,因此浏览器预先配置了http://www.mysite.com部分。

举一个例子,启动浏览器的开发工具并检查本页顶部的StackOverflow徽标。你会看到标记是

<a href="/">Stack Overflow</a> 
+0

我认为有些情况下PHP的相对根目录不令人满意。我认为有些情况下需要直接路径。 – user1082764 2012-02-09 03:21:15

+0

浏览器不关心页面是如何生成的,所以PHP /非PHP不是问题。但总体而言,规则很简单:只要链接的目标页面与当前页面的主机名和协议相匹配,相对URL就足够了。如果您希望链接指向另一个站点,或指向其他子域,或者指向主机上的FTP实现,*然后*您需要绝对URL。否则,相对URL与绝对URL相同。 – 2012-02-09 03:24:18

3

所使用的网址,以确保相对于根,不完整的URL:

<a href ="/myfolder.php">home</a> 

带您到/myfolder.php,无论它运行的域名。

www与no-www应该通过重定向任何地址开始处理www到非www对应地址,反之亦然。这是个人网络服务器的简单配置,例如使用.htaccess指令。

相关问题