搞定一个 BT 的 Apache URL Rewrite
三月 22nd, 2007
需求:
将 host/item.html?type=test
rewrite 成
host/?q=item&type=test
其中 item 和 test 是可变的,并且 ?type=test 可有可无。
解决:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} ^/[^/]+\.html$ RewriteCond %{QUERY_STRING} ^(type=.*)?$ RewriteRule ^([^/]+)\.html$ /?q=$1&%1 [L] </IfModule>
解释:
- ?type=test 是不会出现在 REQUEST_URI 里的,必须使用 QUERY_STRING 来获得它。
- 若有多个 RewriteCond,只能反向引用最后一个 RewriteCond 里的 pattern 的 group。
- RewriteRule 后面的 pattern 是用来匹配当前 URL 的,当前 URL 不是 REQUEST_URI。因为(因此?)它会比 REQUEST_URI 少一个前导斜杠 "/",并且它可能已经被前面的 RewriteRule 改变过。
规则 BT 吧?第一个搞得我差点以为无解,第三个规则也消耗了我大量时间。本以为不用测试就能搞定的一个小问题居然花了 40 分钟左右才完成。-_-b
Tags: Apache, mod rewrite, Software 软件使用 Linux shell I/O 重定向简化小程序的日志记录
三月 12th, 2007
一些自动执行特定任务的小脚本程序,如果希望能使程序的 stdout/stderr 输出到屏幕的同时也把他们记录到一个日志文件,可以使用 tee 命令结合 shell I/O 重定向来轻松完成:
./a_tiny_script 2>&1 | tee the_log_contain_both_stdout_and_stderr.log
这个命令的精华在于 2>&1,意为让 stderr 使用 stdout 的文件描述符,效果也就是将 stdout 和 stderr 内容合并,并且输出到 stdout 被定向的位置。在这里也就是管道中的 tee 命令的 stdin 上,然后 tee 将得到的输入同时显示在屏幕上和记录到日志文件里。爽吧?
以前为了在 PHP 脚本里实现这样的功能竟然使用了 ob 系列函数 + 自定义的 output callback 函数,并且这样也只能做到同时显示和记录 stdout,真是晕到死。
Tags: bash, GNU/Linux, PHP, Programming 编程Vim 7.0c beta Win32 binary
四月 3rd, 2006
偶拿 Microsoft Visual C++ 7.1 编译的,非 OLE 的 GUI 版本和 console 版本。
四个文件保持目录结构解压到某个地方,运行其中的 install.exe 即可。需要注意的是这些压缩包中没有 iconv.dll 和 diff.exe。如果你认为自己解决这些问题比较麻烦,或许你应该等待偶发布 NSIS 的安装程序的版本。
下载: gvim70c.zip vim70clang.zip vim70crt.zip vim70cw32.zip
附上偶的 .vimrc 文件: .vimrc
Tags: Software 软件, Vim, Windows编写INF文件进行文件安装[转载]
三月 2nd, 2006
◆ 丁健 张万 江南
安装信息(Setup Information)文件是Windows系统支持的一种安装信息存放文件,一般以INF作为扩展名,因此也叫INF文件。安装信息INF文件与 Windows内建的安装服务引擎(API函数库)紧密协同工作,基于其严格的编写语法制作而成的INF文件在拷贝、删除文件,增、删注册表键,更改系统设置等方面都有优秀的表现,完全可以用来实现应用程序文件安装的目标,而且价格免费,透明度高,安装程序小,可完全定制。INF文件是文本文件,可在任何文本编辑器内查看、创建、修改,普通用户使用Windows系统本身提供的记事本、写字板即可进行文件安装脚本的编写。 Read the rest of this entry »
Tags: Software 软件, Windows终于把 blog 从远古的 WordPress 1.2 升级到了 2.0
一月 17th, 2006
上周六完成了最近的工作,狂睡一天+猛玩一天之后,昨晚花了一整夜的时间来进行升级工作。包括修改 WP 本身的少量代码,寻找插件的新版本并修改,以及完成去年三月就搁下的 Theme 移植 (从 1.2 的 style 移植到 1.5 的 Theme)。是的,去年三月…… 
意外的发现 MarkDown 这个超好用的写作插件,以前竟然一直无视了它的存在。
简单的说 MarkDown 可以让我们像写纯文本文件那样来写 HTML,再也不需要把 < > 写成 < > 了,直接书写 1. xxx 2. yyy 就可以产生 HTML 的有序列表,直接书写 * xxx * yyy 就可以产生 HTML 的无序列表等等。唯一不爽的是表示引用的效果需要用 Email 格式的 > 符号,并且至少每个段落前面要有一个 > 符号,这样就比直接使用 <blockquote> 麻烦多了,有空得研究一下如何修改它。
Update: 哈,原来要解决这个问题很简单,注释掉 markdown.php 中的这一行就可以了,目的是不去掉 WordPress 本身的段落自动转换过滤器。
//remove_filter('the_content', 'wpautop');
另外发现要使 Auto-hyperlink URLs 和 MarkDown 一起工作的话必须把前者的过滤器优先级设置得比 MarkDown 高,否则也会出些莫名其妙的问题。打开 autohyperlink-urls.php 把最末尾的三行改成这样就行了。add_filter() 函数的第三个参数表示过滤器优先级,由以前的 9 改成 5,因为 MarkDown 的过滤器优先级是 6。
Tags: Software 软件, WordPressadd_filter('the_content', 'c2c_hyperlink_urls', 5); remove_filter('comment_text', 'make_clickable'); add_filter('comment_text', 'c2c_hyperlink_urls', 5);
[转载]About vi & emacs
十二月 16th, 2005
世界上有三种人,一种使用 vi,一种使用 emacs,另一种包括其他所有人。
“爸爸,我们为什么要躲避那些警察?” “因为我们用 vi,孩子,而他们用 emacs。”
Tags: Funny 搞笑, Software 软件正确设置 Vim 的字符编码选项 (gVim/Vim on Win32 中文环境)
十月 20th, 2005
和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下: Read the rest of this entry »
Tags: GNU/Linux, Software 软件, Vim, Windows回到 Vim,回到 GNU/Linux
三月 9th, 2005
还记得几年前初次接触 GNU/Linux 时,听说 GNU/Linux 下最常用的文本编辑器叫做 vi。在 DOS/Windows 下已经生活了一两年的我,自然知道文本编辑器的重要性。于是尝试输入 vi 启动这个被众多 GNU/Linux 用户“吹捧”的著名文本编辑器。
"Oh, shit!" 这是什么怪物?作为文本编辑器它居然就给我一个没有菜单的,只显示了一些莫名其妙的 ~ 符号和它自己名字的黑屏幕。最要命的是在我按了几个字母键之后,它居然除了让机箱里的 speaker 吱吱叫几声之外没有任何反应! Read the rest of this entry »
Tags: GNU/Linux, Software 软件决定放弃用 Firefox 替代 Maxthon
三月 7th, 2005
用 Firefox 绝对不是因为前一段时间网上铺天盖地的宣传,恰恰相反,我对这种宣传比较反感。特别是当我看到某些我不喜欢甚至是讨厌的网站上也出现宣传 Firefox 的广告时更是如此。真正让我觉得 Firefox 比 IE 更好的是它对 Web Standard 的支持,包括更好的 CSS 1.0 支持和完善的 CSS 2.0 支持。
不过,对于普通用户来说,Firefox 也就是比 IE 好,跟 Maxthon/MyIE2 这样的基于 IE 内核的增强型浏览器 (为了方便叙述,以下统一使用 IE shell 一词来表示) 比起来还是有一定差距的。而且,对我来说造成这个差距的主要原因正是 Firefox 引以为荣的基于 XUL 的用户界面和基于 JavaScript 的扩展 (extension) 支持。 Read the rest of this entry »
Tags: Personal 个人, Software 软件智能 ABC 在 Windows XP Embedded 下面选字窗口乱码的问题
二月 22nd, 2005
这个问题说起来也简单,只要安装 NT 版本的智能 ABC 就可以了。
下面的这个安装包,提供的 NT 版本的安装程序,安装完成以后就可以直接在输入法设置里面添加智能 ABC 了。 智能 ABC for WinXPe
Tags: Software 软件, Windows