标签 magike 下的文章

前段时间将博客从独立服务器迁移到了 Godaddy 的主机上,顺便从 Magike 换到了 Typecho。期间先将 Magike 迁移到 Godaddy 的主机上测试,然后将本地安装好的 Typecho 迁移到 Godaddy 的主机上测试,最后在 Godaddy 主机上全新安装 Typecho,整个过程始终被一个诡异的问题所困扰,即重写无法生效。

这个问题源于 Godaddy 主机环境使用的 Apache 版本和 Magike、Typecho 本身使用的 Rewrite 机制。经过自己反复折腾和反复骚扰 70 同学后均没有彻底解决问题,最后易先生眼看自己的博客也受到了影响,于是才亲自动手搞定。

这个问题是这样的:

首先,Godaddy 主机的 Apache 版本是 1.3.33。假设 Magike 或 Typecho 没有开启伪静态,在处理类似 https://www.xuchao.org/index.php/archives/1/ 这样的地址时,服务器会在
/index.php/archives/1/ 这个目录里找 index.php 然后来执行,并不会带上 /archives/1/
这个参数,所以点到哪都是首页。若 Magike 或 Typecho 开启了伪静态,浏览器则会接收到 404 错误。

要解决这个问题,大致有两种方案:
1、改变 Magike 和 Typecho 的 URL 传参形式,及程序获得参数的方法;
2、通过升级 Apache 版本等方式,解决服务器对 Magike 和 Typecho 的 URL 的识别。

很显然,在一个租用环境中无法做到第二点。因此只能考虑调整 Magike 和 Typecho 的 URL 解析的函数。

最后问题是这样解决的:

1、Magike

在根目录 index.php 的 include('./core/core.php'); 这行前面加上如下代码:

$baseInfo = @explode('?', $_SERVER['REQUEST_URI'], 2);
if (is_array($baseInfo))
{
        $_SERVER['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
        $_SERVER['PATH_INFO'] = $baseInfo[0];
        unset($_GET);
        if ($baseInfo[1])
        {
                $getInfo = @explode('&', $baseInfo[1]);
                foreach ($getInfo as $v)
                {
                        $getInfo2 = @explode('=', $v);
                        $_GET[$getInfo2[0]] = $getInfo2[1];
                }
        }
}

如果启用了伪静态,则需要修改 .htaccess 文件如下:

RewriteEngine On
RewriteBase /
RewriteRule index(\.)php/(.*) /index.php?/$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

2、Typecho

在根目录 index.php 的 Typecho_Plugin::factory('index.php')->begin(); 这行前面加上上面一样的代码,若需伪静态,.htaccess 文件也一样。

值得庆幸地是,以上问题仅存在于 Magike 和 Typecho 0.6 以下(含)版本,最新的 Typecho 0.7 正式版已完全解决此问题。

问题解决,立此存照。感谢易先生的帮助与 70 同学的辛勤耕耘。

2013 年 4 月 13 日更新:关闭本篇文章评论,垃圾太多。

首先感谢 hema 兄的提醒,我这就更新一篇上来。

其实 Typecho 项目组建已久,前期 beta 版本一直不敢做小白鼠;后面有了 release,却一直忙于其他事情,迟迟借口没时间换。说来惭愧,眼看 70slukefen明城IPFox 等同学相继用上了 Typecho,我依然无动于衷。

在一直以来内心强烈谴责自己的同时,趁今晚睡前赶紧把 Magike 换了,诸如链接、feed 地址等的内容将尽快修正过来。

因为自有独立服务器的缘故,所有也没花多少时间,前后加起来十分钟都不到。以至于 blacksheep 同学刷新页面后惊讶地以为搞错了网站,仔细一看,没错,只是换了皮……

还是那句话,忙碌、没时间,都是借口。人们善于给自己找借口、找理由、留后路,并且成为了习惯。

另外关于多位仁兄在我这篇文章上的留言均已收悉,感谢你们。鉴于你们的打击,我已开始找资料自学以期有所提高。之前的图片也会根据需要做一定程度的修缮。

最后解释一下最近发文频率降低的原因。我觉得最大的问题是找不到专业的定位,你看明城同学在他博客上挥洒 JavaScript 的精华,他女人老佛爷在她博客上随意书写和谐生活的每一个篇章,而其他同学就更专业了,譬如这个 GFans、这个驴友、这个米农,不一而足。因而我实在不忍心在博客上扯淡耽误大家的时间、伤害大家的眼球、影响大家的心情、谋杀大家的生命。

若你有 idea 希望我写一些什么,欢迎留言。多谢。

案发时间:2008 年 7 月 19 日晚 19 时 30 分许。

案发地点:杭州市文三西路 638 号小尾羊 11 号包厢。

作案人员:传说中的 70 同学及其在雅虎口碑工作的朋友、feelinglucky 同学(传说中的淘宝前端工程师明城)及其夫人陆小姐(亦称老佛爷)、新钻网 ppeng 同学、LSD 刘先生(我们曾经的同事,目前是老佛爷的同事),及本报记者。

作案工具:和谐的人民币、可爱的口碑卡、牢固的牙齿。

作案动机:70 同学来杭参加雅虎口碑的面试。

作案经过:请欣赏高清、无码、激情的下述图片。

有了口碑卡,您还能忍住美食的诱惑吗?

喝的是杭州的酒:

70 同学特写(应其本人强烈要求,加盖薄码):

中间那位猥琐少男……嗯,您猜对了,一看就知道是淘宝的风格。左边那位是 lucky 的夫人老佛爷:

70 和 lucky 大谈特谈技术,还不停地用手比划:

两人一起达到了某个高潮,请看 70 同学的一阳指:

两个技术疯子的故事,已经给我们这些外行人幼小的心灵造成了深深的伤害。连老佛爷也只能用手托着下巴,深深地表示无奈:

从左往右依次是:70 那位在雅虎口碑工作的朋友、LSD 刘先生(您瞧这帅气的发型):

LSD 刘先生给 lucky 点烟,两人十分激动,本记者也忍不住激动地抖动了一下:

抽的是杭州的烟:

不知道是谁吃剩下的不知道是什么动物的什么部位的肉:

全文完毕,感谢关注,欢迎发言。

2008 年 7 月 8 日,距离奥运会 30 天倒计时。今天同样是一个激动人心的日子、一个值得纪念的日子。由 70 同学领衔的原 Magike 项目组对外宣布新项目 Typecho 的成立。

从 exBlog 到 Magike,再到 Typecho,风雨同舟、荣辱与共,我们一路走来

Typecho 是否会成为中国版的 WP?今天是否会成为国内开源博客项目的里程碑?让我们拭目以待。

项目组内的 70 同学sluke 同学水水同学都相继撰文表达了他们对 Typecho 出世、祖国河山一片和谐的喜悦心情。

关于从 Magike 更名为 Typecho 的缘由,请参见这里

开源传万世,您我共参与。我们热忱期待您参与项目的任何工作,代码、文档等等……

关于如何贡献代码、参与项目,请参阅 http://www.typecho.org/contribute

Typecho 项目主页:www.typecho.org,开发日志主页:www.typecho.net

开源之路任重而道远,愿 Typecho 一路走好。

由于垃圾评论的困扰,前几天我开启了评论审核,给诸位带去种种不便,我谨向各位表示歉意。在 70 同学的帮助下,我已将博客程序升级到 1.2.0 release,并使用了 70 同学开发的反垃圾评论插件。目前博客正在该插件的强大保护下运作,阅读时间不到 15 秒而进行的评论将被置为待审核状态,来路不正确、外部构造表单的将拒绝入库。

路人甲:自从我用了 70 牌反垃圾评论插件,垃圾评论不见了;没了垃圾,页面就干净,看啥啥顺眼。您瞧准了,70 牌反垃圾评论插件。

路人乙:70 牌反垃圾评论插件效果非常好,我们全家都用它。

路人丙:我用 70 牌反垃圾评论插件已经五十多年了,非常信任它。逢年过节,用来送礼也倍儿有面子。亲戚朋友都喜欢。

wiLdGoose:截止发稿,我已经看不见垃圾评论啦。心情好,请玩深圳市地税局荣誉出品《纳税富翁》。虽说曾经爆出一个漏洞,但我依然支持它。《纳税富翁》是我们党国和人民的骄傲,我们引以为荣。以下是我的截图,请深圳市地税局不吝赐教。