对 blog 的一些改变

说来也惭愧,这个 blog 这么几个月来一直没有一个固定的样式。我一直在尝试选择一个主题,然后使用起码一两年。换了 N 个主题后,好不容易在几经修改后固定了一个主题样式,可惜万中有疏——由于一直用 Firefox 忘记测试在 IE 下的表现了。该主题在 IE 下显示惨不忍睹,更不幸的是我还找不到原因。开始是字体大小不一致,解决这个问题后,IE 下显示总是比正常窄一些,以及 IE 下行距太大这两个问题折腾我了很久也没搞掂。虽然在 Firefox 和 Opera 下显示都没问题,但问题是 IE 用的人太多,我总不能对不管不问大多数人的感受吧。所以在确认自己真的搞不掂后,一怒之下重新修改了一个主题,这回修改的主题是 Mistylook. 一个简洁的二栏主题。

修改没费太多时间,捎带手汉化了一部分内容,余下的待有空再汉化,还有一些细微地方的调整我也慢慢改吧。

另一个就是把 blog 的地址改了一下,移到了 /blog 目录下,把宝贵的根目录留作它用。其实有经验的人都知道,改变地址牵扯的地方太多了,比如因为地址的改变,搜索引擎过来的流量就会骤减,同时你的网站结构的改变,可能会让搜索引擎范糊涂,可能会认为在作弊,从而因此被加人黑名单中。加入黑名单倒没什么,反正我这个域名我强烈怀疑曾经进过 Google 的黑名单,这个域名我以前是拿来做 Joomla! 试验的,后来改成现在这个 blog 后,Google 就一直没怎么收录过,到现在,索引的数量也不高。所以我是光脚的不怕穿鞋的,再改一次又怎样? Nothing to lose. 百度?不用担心,自然会颠颠地找上我的。

我担忧的其实是上面说的第一点弊端——搜索引擎过来的朋友就无法找到想找的网页了。我尝试在 .htaccess 中用一个 Redirect 命令把所有链接转到 /blog 下,但没有成功,不知道为什么被解释成了递归调用(*)。显然简单的 Redirect / http://bemike.org 是不奏效的。不过好在我一 Google 就找到了一个好办法,就是打开 Apache 的 Rewrite 功能。在 .htaccess 里加入下面这些代码:

# Turn on rewrites.
RewriteEngine on

# Only apply to URLs on this domain
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$

# Only apply to URLs that aren’t already under folder.
RewriteCond %{REQUEST_URI} !^/folder/

# Don’t apply to URLs that go to existing files or folders.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all those to insert /folder.
RewriteRule ^(.*)$ /folder/$1

# Also redirect the root folder.
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ folder/index.php [L]

保存后再打开原网址上的任意链接,发现可以成功打开了。

基本上棘手的都已经解决了,剩下的也没什么重要的影响因素了。请大家更新一下我的 blog 的链接,变成 http://bemike.org/. 当然如果你是直接订阅 Feed 的话,什么事都不用做。

Update: 上文提到不知道为什么看似正确的 Redirect / /blog 命令执行起来变成了递归。原因在于,这个命令原理是把所有根目录下的文件全部重定向到 /blog 下,但 /blog 目录本身也在根目录下,所以就变成了不断把自己重定向到自己的目录下。

以上,希望对想知道为什么不能用 Redirect 命令的朋友有用。

Tags: , , , , ,