+ -
当前位置:首页 → 问答吧 → [05.13解决]为什么我的服务器上url会变成这样?

[05.13解决]为什么我的服务器上url会变成这样?

时间:2008-05-09

来源:互联网

自从换了fedora做服务器,网站访问的url就变成了这样:http://192.168.1.1**//index.php。怎么index.php前面变成两个//了呢?想恢复回去,http://192.168.1.1**/index.php,请指点。谢谢!
===============================================
2008年5月13日下午,此问题不是由于apache导致的,是php程序导致的。
在这里写一下解决过程:
出现这个问题的网站是开源bug管理系统bugfree,原先安装在windows下,一切正常;后来移植到fedora下,出现了此问题。
经过一个朋友的帮助,他找到了解决问题的方法。在Include/SetupBug.inc.php里,原先这行代码是这样的:
复制内容到剪贴板
代码:

$BugConfig["BaseURL"]   = "http://" . $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"].eregi_replace("/Admin","",dirname($_SERVER["SCRIPT_NAME"])) ;
把代码改为:
复制内容到剪贴板
代码:

$BugConfig["BaseURL"]   = "http://" . $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] ;
$BugConfig["BaseURL"]   .= dirname($_SERVER["SCRIPT_NAME"])=='/'?'':eregi_replace("/Admin" , "", dirname($_SERVER["SCRIPT_NAME"]));
                                                //  如果不是/,就正则替换不准访问/Admin(管理员目录)。
就好了。
初步看来是系统间的差异,在windows下正常,说明改前的代码可以构建出正确的地址,例如:http://192.168.1.***:80 ,而在linux下,先构建出http://192.168.1.***:80/,然后dirname($_SERVER["SCRIPT_NAME"])又构建了一个“/”,结果最后就成了http://192.168.1.***//index.php 了。
在这里写下,希望帮助大家在碰到类似问题时能有所启发。

[ 本帖最后由 littlehehe 于 2008-5-13 16:39 编辑 ]

作者: littlehehe   发布时间: 2008-05-09

自己顶一下,难道大家都没碰到么?

作者: littlehehe   发布时间: 2008-05-10

没遇到过 帮不了你了
见谅

作者: sunningan   发布时间: 2008-05-10


作者: littlehehe   发布时间: 2008-05-10

我猜跟Apache有关。

作者: hxcan   发布时间: 2008-05-10