修复 Simple PHP Blog 的页面跳转错误 

我不知道这篇文章该不该写在这里,因为严格意义上来讲,它不算是GNU/Linux 相关的问题。

不过,考虑这个站点是架设在 sphpblog 上的,所以姑且算作是有点关系吧。

是这样的,自从我升级到sphpblog 7.0 以来,我发现一个问题,那就是每当我提交完文章,或者提交完相关的表单操作。

sphpblog 都会将我跳转到 "http://domain.comindex.php" 这个地址。

很明显,它忘了在域名和子级路径之间加“/”了。

这的确很坑爹。每次我都会被送到中国电信的114错误页面,莫名的恼火~

于是,今天正好有时间,看看源码。发现它是在保存完毕后,调用了一个叫“redirect_to_url()” 的函数来实现跳转。

而这个函数位于scripts 目录下的 sb_login.php 文件里,具体内容
参见SVN:http://sphpblog.svn.sourceforge.net/viewvc/sphpblog/trunk/scripts/sb_login.php?revision=217&view=markup

可以看到,该函数还用到了一个叫“baseurl()” 的函数,这个不去管它。

只要把178行的
header('Location: ' . $baseurl . $relative_url);
改成
header('Location: ' . $baseurl . "/" . $relative_url);
即可。

保存下。

看看,是不是跳转成功了?!

注:这已经不是"redirect_to_url()" 这个函数第一次出现问题了,之前也有过一次类似坑爹的问题.
参见官方tracker:
http://sourceforge.net/tracker/index.ph ... tid=645297

评论