自由软件/开源社区几个名词简介:unix,GNU,GPL,linux,BSD,freeBSD/UNIX简史

对于刚刚接触自由软件/开源社区的人来说,里面经常出现的几个名词很令人头大,网上搜索这些概念的讲解,都讲得很复杂,至少我个人没有找到很简明的介绍。 终于通过不懈的努力,这几个概念终于大概明白了。肯定会有不少朋友也像我一样,因此,我按照自己的理解,用最简单的话,对这几个概念作一个简介,可能有不 对之处,还请指正。

  1. UNIX说起,它是一个非常老牌、但又影响深远的操作系统,由AT&T公司的贝尔实验室开发。
  2. 当时AT&T公司把该操作系统的源码授权给高校、学术机构做研究或教学之用。因为这个操作系统非常优秀,很多机构都在其源代码基础上做功能扩充改 进,其中以加州大学伯克利分校的改进版最为著名,这个改进版即BSD(Berkeley Software Distribution,伯克利软件套件)。
  3. 由于源码开放性,一些公司也参与到UNIX的开发工作中,这里面最代表性的是IBM、SUN,他们分别开发出了AIX (Advanced Interactive eXecutive)、Solaris(曾用名SunOS),是供各自公司的工作 站、小型机等机器使用(当时还没有微机)。
  4. 之前的unix(包括unix衍生版都是)有一群BSD开发者离开了加州大学后,在BSD基础上搞了一套386BSD,是基于 intelCPU的(这时候便宜的intel芯片已经问世,并获得了一定市场,但intel芯片却没有相应的unix版本)。
  5. AT&X公司意识到了UNIX商业价值,但看到这些商业版本的UNIX感到非常眼红,大概想从中获得利益,于是疯狂的“打关司”,状告他们侵权。 于是UNIX界一片阴云,UNIX的发展也受到很大影响,高校教学用的UNIX也受到一定影响。
  6. 有位教授在业余时间编写了一个简单的unix版本MINIX,意思就是mini版UNIX. 其实是一个兼容UNIX的一套操作系统,他编写时是不看UNIX源码的,而是根据记忆里的UNIX的功能开发。但他确实太忙了,没有精力对这个版本进一步 完善。
  7. AT&T公司的官司还在继续,但UNIX实在太好了,离了它就不能工作。
  8. 70、80年代之际,对软件开发应该是开放还是封闭,有着截然不同的两种观点。“钱门大叔”也正是这时开始发迹的(这里他有一篇关于basic工具的呼 吁),他当然是支持封闭开发了。
  9. GNU大神 Richard Matthew Stallman是“软件专利”的坚决抑制者,他建立了GNU项目,目标是创建一套完全自由的操作系统,当然是UNIX兼容的。为了保证自由软件的成果不被封闭软件的开发盗用,他起草了一个许可协议GNU General Public License,简称GPL
  10. Stallman本人做了不懈努力,完成了相当大的一部分工作,但还差一个操作系统内核,他的构想是编写一个非常超前的先进的内核,但需求太复杂了,从而进展缓慢
  11. 正好这时荷兰的大学生linus基于intel i386编写了一个操作系统内核linux,在一定程度上参考了MINIX。在stallman的鼓动下,linus以GPL作为授权协议发布了linux.于是一个完整的操作系统就诞生了,就是GNU/Linux。
  12. 另外有一BSD群开发人员在386BSD的基础上搞起了UNIX,这里面有freeBSD, netBSD, openBSD. 通常认为freeBSD是最纯正的UNIX(但它其实也不是UNIX的嫡系)。
  13. AT&T的UNIX后来被卖了,而且经几家公司多次转手,结果从这个世界上淡出了,UNIX官司也就不了了之了。

-------------

详细信息参看以下:

UNIX发展史(BSD,GNU,linux) http://www.path8.net/tn/archives/726

linux简史 http://www.path8.net/tn/archives/722

了解更多信息,可以观看记录片《操作系统革命》(Revolution OS)2001年摄制,另有维基百科里相关词条。

google搜索设置,打造个性化的搜索:通过google英文版关闭google“安全搜索” (取消启用了安全搜索功能)

实在不懂google中国跑到香港为图个啥,.cn的搜索转到.hk后,搜索结果页反而直接:

搜索 gecko wine 获得约 456,000 条结果(启用了安全搜索功能),以下是第 1-10 条。 (用时 0.21 秒)

跑到香港搞和谐去了!

或许是原来.cn本来就是“和谐版”的,只是没有在页面上显示出来,大家不知道而已。

网上有人说什么是google是“逻辑的”,于是试图通过google的设置关闭“安全搜索”,在google中文版当然是失败了的,但在英文版里是可以的。

以前没有注意过之前google.com的设置setting里面每一项设置,也修改过“”(在新窗口打开结果页),最近有意比较google中文与英文搜索结果,差别还是有的,有时还很大。于是搜索东西时,会结合两个语言的搜索使用。而且英文版的也可以用中文显示页面,就在setting里设置,如下:

打开google英文(google.com),如果自动跳转到中文站点下的话,点中文首页最下面倒数第2行的

- Google.com in English

随便搜索一个关键词,比如输入

site:path8.net/tn

按回车——别说你不知道搜索引擎里的site:语法啊——

看到搜索结果页,该页最上面一行右边会有

web History | Settings | Sign in

三个链接,点“settings” (如果你已经登录gmail账号,settings将显示为菜单形式,菜单项里的search settings)

[是整个页面最上一行,比logo还靠上]

(1)

Interface Language

界面语言,默认为英文,可以设置成为 chinese simplifield,这样可能更容易阅读。当然也可以不设置,感觉更原汁原味一点。

2)

Search Language

搜索哪些语言的页面,默认当然还是english,建议选上

Chinese (Simplified)

Chinese (Traditional)

两项

3)

SafeSearch Filtering

Google's SafeSearch blocks web pages containing explicit sexual content from appearing in search results.

Lock SafeSearch This will apply strict filtering to all searches from this computer using Firefox. Learn more

看到了吧,所谓的安全搜索就这里,默认选的是第2项,中等安全,赶快改第3项吧

4)

Number of Results

每页显示结果条数。这个维持默认好了,当然你也可以改

5)

Results Window


结果打开窗口,新窗口打开搜索结果,选中吧;本朝网速太慢,这样可以让多个窗口同时慢慢打开着,我们先看其它,或打开更多窗口,然后再回来看之前打开的窗口是不是已经打开完毕。其实这也就是“多线程”的原理。

6)

下面还有几个选项,有兴趣的话,可以自己看看,酌情设置

......

9)

保存设置吧。
点页面右上角,或右下角的“Save Preferences”按钮,完成了。
这个设置是以cookie保存在本机里的,清空cookie后,还要重新设置的。

一个个性化的google搜索已经打造出来,

Advanced Search
有没有注意到搜索框下面下面一行的

,搜索英文关键词时,经常是几乎全部英文结果,可以选中这一项,再点search,就可以看到较多的中文结果了,还是比较方便的。

最后补充一点,其实不用搜索一个关键词,进到google英文首页就可以点右上角的settings进行设置了,ee~~~~

phpmyadmin报错原因及解决方法:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。

两天前登录phpmyadmin突然出错了,

"无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。"

很奇怪前些天一直好好的,怎么就突然不能用了,把phpmyadmin文件拷到另外站点的目录里,运行,居然好了。但原来的目录就是不行。

用过后,就把另外站点里的phpmyadmin删掉了,原来目录里还是坏的,有时间再找原因解决。

今天,又要使用修改一些东西,原来目录里的还是坏的,重新从官方下载最新的3.3.1版上传,还是坏的;传到另外目录里也一样。看来这个问题总是要解决的了。

google了一下,有人说是“打开您的php.ini配置文件session.save_path = “某个路径”检查该项是否配置正确”,大致明白了,估计是phpmyadmin需要写session文件,但session目录没有相应权限所以报错“...发生错误时创建会话...”,错误信息里说明是session相关的,只是这个错误信息太简略了,不容易轻易看明白。

到服务器上修改php.ini,以前没有配置session.save_path的。于是C盘建一个session目录c:\tempfolder\phpsession,给phpmyadmin站点的web用户赋读写权限,在php.ini里加上一条

session.save_path="c:\tempfolder\phpsession"

运行iisreset,进入 phpmyadmin站点,终于看到了久违的登录页面了。

分析一下原因,应该是这样的:

windows版的php应该默认使用系统临时文件目录,可能因为别的什么原因,之前有对临时文件目录的权限丢失了,所以就报上面错误

前几天拷到别的站点目录里,而这个站点的iis用户对windows临时文件有读写权限,所以可以正常使用phpmyadmin;今天,那个站点的iis用户也没权限了,就不行了。

至于网上有人说的,要赋everyone读写权限(甚至还有说赋“完全控制”的权限),就没必要了,只给相应的iis用户赋读写权限就可以;否则还是完全隐患。

顺便说一点,我的phpmyadmin没有放到自己电脑上,远程连接mysql服务器,而是直接把phpmyadmin放到mysql服务器上,这样正是为了安全其见。mysql的root用户只允许localhost连接,不允许从别的主机上连接。其它用户也是只允许在相应主机上访问。

linux下apache启动出错:Permission denied: make_sock: could not bind to address

之前自己编译安装的apache/php/mysql——什么,连mysql也自己编译?很正常,学习嘛—— 当时是好好的,今天启动却出错了,直接运行./httpd也一样:

[feng@localhost bin]$ ./apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

同时seLinux报警,这两行是主要的错误

(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
毫无疑问,是权限拒绝,但之前为什么是好的呢

突然发现当前运行的账号是普通账号,而非管理员,这难怪,普通账号默认无权启动监听80端口的,su一下,输入密码,很顺利的正常启动了,当然这一行错误还是有的:

httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

,这无所谓,没有绑定域名,反正是本机运行的。

linux 轻量级桌面环境LXDE,XFCE 在fedora12下安装使用手记及比较(包括kde/gnome)

笔记本已经把默认启动操作系统改为linux(fedora12),使用linux的历史可以人追溯到好几年前,还是在大学时候,花了无数个日日夜夜才研究明白linux是怎么安装的并安装成功,当时使用redhat9。因为不是计算机相关专业,底子太薄,这也难怪。不过一直以来都没有真正的深入学习linux,仅仅会用几条最基本的命令,大多数操作还是gui下。工作后,买了个笔记本,马上就安装fedora,当时还是8,后来一路跟随,到现在的12。一直以来跟之前差不多,更主要还是使用gui。随便说一句,在网上看鸟哥linux官方站点,正在努力学习。

扯远了,说使用桌面环境的事吧,fedora默认gnome,之前也使用过kde,但没有发现kde的优秀之处,所以一直以来都是使用gnome。升级(其实是全新安装的)到fedora12后,某一日心血来潮换用kde,突然发现kde是那样的炫,而且图形化设置选项里还有那么多效果默认没有打开,搞了一通,算是搞了个相对满意的桌面环境,用了起来。再换回gnome,感觉gnome实在是太“土”了,虽然号称要跟mac ox 的图形界面比拼。也可能是不会设置的的原因吧,但总之个人感觉它既不在图形效果上胜出,也没在运行速度上领先。所以几乎不再使用它了。后来通过yum升级kde,kde改进了更炫“任务栏缩略图预览”的效果,当然是仿vista/win7的。完全可以说kde在图形显示效果上是优胜选手。

然而kde的速度实在有点不敢恭维,别的地方倒还好,最不能忍受的是,firefox打开长一点页面时,拉动滚动条时,页面像在粘稠的糨糊里拉东西一样,一点一点的往下走,看着都累。尤其页面比较复杂一点更明显,在wordpress后台写文章,感觉更明显。笔记本配置不很高,但也不差,core1代cpu,3G内存,没有用swap。于是想找一个速度更快的轻量级桌面使用。之前在一些轻量级linux发行版,或u盘版工具包里,看到过一些速度非常快的桌面环境。

今天在网上看到一篇文章,http://linuxtoy.org/archives/lightweight-desktop-compare.html,里面有对几个轻量级桌面环境的启动速度评测。作者是使用fedora10做的实验,直接使用yum安装,于是马上安装使用一下。安装了LXDE,XFCE两个,很快,前者才下载不到3M的安装文件,后者也只下载了十几M,很快安装成功,logout,登录。果然这两个桌面环境都非常快,当然图形特效就没了,窗口也是很传统的方方正正的矩形。打开firefox,进入wordpress后台,编辑几篇旧文章,没有像之前kde里那样迟钝的感觉了。

LXDE有一个问题,它不能识别kde下的启动器,而是当作文本文件打开,而在xfce下就可以。lxde下双击桌面上kmplayer启动器,默认是文本编辑器器打开的。桌面上的启动器都是文本文件的图标。顺便对kmplayer不熟悉的人(希望您不是^_^)说一句,linux下的kmplayer跟棒子(民族歧视了,ee~)编写的windows下的kmplayer播放器是完全没有关系的,如果说有关系,那就软件名称一样。linux下的mplayer是mplayer的一个图形外壳,当然它也可以调用另外几种播放器核心。

lxde的图形视觉效果相对好一点。Enlightenment没有安装使用。

刚刚安装使用,还没有深入使用,先记下来,给跟我一样有这方面需求者作为参考。

顺便说一句,现在这篇文章就是在xfce下用firefox写的。

---------------------------------------------------------------------------------

下面是http://linuxtoy.org/archives/lightweight-desktop-compare.html的原文,帖过来
[ad#gad_2]
这天你终于下定决心购买了一台流行的 Netbook ,与往常装机一样,直接安装心爱的 Linux 发行版。好不容易安装完成了,却发现平日启动飞快的应用程序在 Netbook 上怎么都跑不快。怎么办呢? 与往常一样,你上网寻求帮助,发现了很多“轻量级桌面环境”。面对如此多的选择,到底哪个才是适合你的呢?

如上所述,本文主要是对由于 Netbook 风行而火爆起来的几款轻量级桌面环境进行一个比较,希望能对使用 Netbook 或者电脑配置较古老的朋友有所帮助。 有个小小的问题是,本人没有 Netbook,只能让自己的 12寸本本“山寨”一下了……

测试环境

AMD Turion 64 X2 TL-58 1.9G / DDR2 800 2GB*2 / nVidia GeForce 8400M G 128M
Fedora 10 2.6.27.5-117.fc10.i686.PAE / X.org 1.5.3

测试项目

  1. OpenOffice.org 3.0 Writer 第一次启动用时(所谓“冷启动”);
  2. OpenOffice.org 3.0 Writer 第二次启动用时;
  3. GIMP 2.6.2 第一次启动用时;
  4. GIMP 2.6.2 第二次启动用时;
  5. Mozilla Firefox 3.0.4 第一次启动用时;
  6. Mozilla Firefox 3.0.4 第二次启动用时;
  7. OpenOffice.org 3.0 Writer + GIMP 2.6.2 + Mozilla Firefox 3.0.4 + 默认文件管理器 + 默认终端模拟器 情况下总已用内存。

测试方法

为每个桌面环境建立全新的独立的用户帐户,在首次登录后进行以上测试。在一个桌面环境中的测试结束之后,关闭计算机,等待五分钟后再开机,进行下一个桌面环境中的测试。 本人水平有限,不清楚如何精确计算启动用时,只好手机的秒表,精确到毫秒。注意!人对视觉刺激是存在反应时,所以该时间仅作粗略比较。 总已用内存选取使用当前桌面环境下默认终端模拟器中 htop 所显示已用内存值。

LXDE Let's speed up your desktop!

LXDE,是 Lightweight X11 Desktop Environment 的缩写,它特别为低配置环境下的电脑设置,如 Netbook、MID或者是较老的电脑设计。该桌面环境还为 Netbook 等设备设计了标签式的 lxlauncher,方便快速调用程序(个人觉得这种 launcher 借鉴了 PalmOS 上的很多 Launcher 的设计)。 LXDE 是一个相对较新的项目,随着 Netbook 的兴起而产生。我是在今年 OOoCon 2008 上遇见了 LXDE 的 Mario Behling 先生后才产生兴趣的。Mario 用一台原装 Xandros 的 eeePC 和一台安装了 Pud-LXDE 的 eeePC 做比较,LXDE 下 OOo 2.4 出色的启动速度给我留下了深刻的印象。

Fedora 10 安装:yum groupinstall LXDE
测试版本: lxde-common 0.3.2.1
默认文件管理器: PCManFM
默认终端模拟器: lxterminal

Xfce ... and everything goes faster!

Xfce 是一款适用于多种 *NIX 系统的轻量级桌面环境。它被设计用来提高您的效率,在节省系统资源的同时,能够快速加载和执行应用程序。 - Olivier Fourdan, Xfce 创始人 Xfce 是一个有很长历史的的桌面环境项目了,在很多U盘 Linux 中可以见到它的身影。另外,Xfce 也是本次测试的轻量级桌面环境中唯一一个支持窗口透明特效的。

Fedora 10 安装: yum groupinstall XFCE
测试版本: 4.4.3
默认文件管理器: Thunar
默认终端模拟器: xterm

Enlightenment Beauty at your fingertips!

Enlightenment 是窗口管理器,Enlightenment 是桌面外壳,Enlightenment是创建漂亮应用程序的材料,Enlightenment,或者简单的一个 e, 代表着一群尝试创造次世代应用程序的人们。 相比以上两款轻量级桌面环境,Enlightenment 在亚洲地区不是那么出名,可能是由于本地化比较欠缺的缘故。本人了解它还是从 Yellowdog Linux 开始的。Enlightenment 在追求轻量级的同时也十分注重美观,它的控件悬停特效绝对让人过目不忘~

Fedora 10 安装: yum install enlightenment efreet eterm
测试版本: 0.16.999.043
默认文件管理器: 不知道名字……
默认终端模拟器: eterm

好了,参赛选手介绍完毕。为了更好的反应这些轻量级桌面环境的性能,测试中也加入了 GNOME 2.24,方便比较。

测试结果:

LXDE        XFCE        Enlightenment        GNOME

22.88      24.29         24.40                          22.84       OOo 1st(ms)
3.87         4.52           4.02                            5.13         OOo 2nd(ms)
17.06       18.54        19.63                          19.59       GIMP 1st(ms)
5.82         5.54           5.64                            5.82         GIMP 2nd(ms)
13.85      14.99         14.03                          12.64       FF3 1st(ms)
3.49         3.38           3.03                            3.38         FF3 2nd(ms)
237          250            195*                           288         UsedMem (MB)

*eterm 启动失败,以 Xterm 代替。

结果分析

从上表的结果看来,在应用程序启动时间上,各个桌面环境的差异并没有预想中的那么大,最快的与最慢的差别都在2s内(全距),对于用户来讲差别并不 是十分明显。另外,非轻量级 GNOME 的性能也算对得起观众。在内存使用方面,各个桌面环境还是有不小差别的,最低的 195M 与最高的 288M 相差 93M(全距)。造成这种结果的原因是什么呢?

本次测试所用平台性能比 Netbook 要高很多,尤其在内存方面;同时除了桌面环境以外的其他所有软件都是一致的。在这种条件下,可以认为差异只是由于桌面环境本身的性能所致,与硬件和其他软 件无关。桌面环境对应用程序的影响体现在与X server 的沟通速度和自身占用内存上。而结果中相近应用程序启动速度,反映了在同一个 X server 下,窗口管理器的性能优化空间实际上相当的小。于是轻量级桌面环境的优势更多的体现在自身占用内存较小,可以留给应用程序更多的内存上。

早期的 Netbook (比如一代 eeePC )或者老的本本都只 256M 内存,还要分给显示8M左右。在这种总内存不够用的条件下, LXDE 和 Enlightenment 由于无需访问交换分区,就会比 XFCE 和 GNOME 体现出更快的应用程序启动速度。但是一旦拥有较充足的内存(新一代的 Netbook 都拥有 512M 内存),同样都无需访问交换分区,这种差异就变得不是那么明显了。

结论:

由于各个轻量级桌面环境本身性能上差异不大,所以你决定根据自己的喜好去选择。如果注重功能,推荐具有标签式 Launcher 的 LXDE;如果注重外观,推荐华丽的 Enlightenment;如果希望与传统的桌面环境在使用习惯上保持一致,推荐 Xfce。

PS:关于使用测试平台的对结果的影响的补充说明

很感谢诸位朋友的下面的评论,看到很多朋友说到测试平台对结果的影响问题,觉得有必要补充说明下。 很显然,最理想的情况应该是找一台 Netbook 来测试,现实是我没有……(下面会有此句话的修订版~)

测试的目的是考察桌面环境这个软件本身的性能,采用这个硬件性能充足的平台可以最大限度降低硬件条件对它影响。固然这些桌面环境是为低内存配置的机子设计的,但是没有任何证据表明轻量级桌面环境在大内存条件下的表现下与在低内存下的表现会有显著差异。再说用来参考的GNOME,根据GNOME项目的推荐512M内存来看,256M内存显然会对 GNOME 这个软件的表现有影响。于是:
低内存配置下LXDE的表现=高内存配置下LXDE的表现(以LXDE为例,其他类似);
低内存配置下GNOME的表现<高内存配置下GNOME的表现;

本着公平竞争的原则,结合考虑测试目的是考察软件本身,只能选择高内存配置的平台以照顾 GNOME,也只有这样最终结果才具有比较性。
于是上面的话应该修订为:
很显然,最理想的情况应该是找一台 Netbook 来测试(当不考虑和 GNOME 比较的情况下),现实是我没有……

Ubuntu 和 Xubuntu 毕竟是两个发行版,系统启动时默认载入的服务都不一样(印象中前者默认启用蓝牙而后者不),如果要比较的话,可以在 Ubuntu 下安装 XFCE,或者在 Xubuntu 下安装 GNOME,这样比较较好些。

IIS web站点流量监测监控/不借助第三方工具分别监控windows2003 IIS 6.0中每个站点的流量

windows2003下IIS6.0监控每个web站点的流量,对于web服务器管理来说是一项很有必要的工作,网上也有很多人发贴子问这样的问题,也有很多iis流量监测软件,搜索"iis流量监控",查到的的结果几乎全是借助第三方工具实现的,这对于web服务器而言,装一堆软件总是让管理员心里不舒服的事情,说不定哪个软件有漏洞,更有甚者,直接是植入木马的软件,服务器就完了。

经过查阅IIS文档,发现windows2003自带了IIS流量监控功能,而且使用比较简便,虽然功能不是十分强大,但对于常规的流量监测足够了,这个功能就是windows2003管理工具里的“性能”工具。具体使用如下图所示:

使用host文件完美解决ASP错误msxml3.dll 错误 '800c0005'

在asp中使用xmlhttprequest获取一个URL的html内容,用来做缓存以加快浏览器速度,但有时会出现这样的错误:

msxml3.dll   错误   '800c0005'
系统未找到指定的资源。

网上说法众说纷纭,但就笔者经验而言,都是因为服务器端dns解析问题,也就是服务器所在机房提供的dns不能解析该域名,笔者所用服务器网络经常出现这样的问题,过一段时间就好了,可能是几分钟,或几个小时,但在出错期间还是很郁闷的,很多页面都无法访问了。因为是dns原因,也束手无策。今天突然想到了windows的host文件,直接通过host文件强制指定域名的ip地址,不就可以解决该问题了。于是修改服务器的host文件,修改后,就在服务器上打开不能解析的域名网站,一下就可以访问了,没有经过微软经典的“重启”操作就可以。

由于是站点是在服务器本向的,所以直接指定IP地址为127.0.0.1 ,这样更方便,就算是服务器ip地址改了也照样能用.

AJAX辅助调试利器:LiveHTTPHeaders

[20161011更新] 该扩展的原始版本长期没有维护、而不再支持最新的firefox;但有一个克隆分支在正常维护中 Live HTTP Headers (clone) . https://addons.mozilla.org/zh-Cn/firefox/addon/live-http-headers-clone/

----- 以下是原始文章 -----------------

LiveHTTPHeaders,一个firefox插件,非常强大的http请求抓取、重发、模拟工具,可有筛选的监测所关心的http请求。

官方网站:http://livehttpheaders.mozdev.org/

iis 404不用url rewrite组件也可以实现rewrite功能:原来不是很新鲜的技术

前不久无意中看到说iis服务器,即使不用rewrite组件,也可以实现rewrite功能,是借助404页面的一个巧妙应用,把所有页面都导向404页面,再由404载入相应的重写目标文件请求,因为使用linux+apache主机,没必要搞这东西,就没有仔细看这个功能的具体实现代码,但还是感觉到很新奇。而且那篇帖子的作者说是看到某个国外技术文章里讲的,借鉴来。

刚才,十分钟前,偶然看wordpress官方网站里的说明文档,发现了在wordpress里早就应用这一技术了:

wordpress管理后台-设置-固定链接

“WordPress 允许您更改默认的链接形式,以此提高 URLs 的可读性和对搜索引擎的友好程度。参考

 这里的“参考”链接里面就有以下一段:

  • Apache web server with the mod_rewrite module
  • Microsoft IIS 7+ web server with the URL Rewrite 1.1+ module and PHP 5 running as FastCGI
  • possibly Microsoft IIS 6+ using a 404 handler or Mod-Rewrite Pro
  • Lighttpd using a 404 handler or mod_rewrite or mod_magnet (see External sources)
  •  讲得很明白,404 handler 也可以实现,

    1 <?php
    2 $qs = $_SERVER['QUERY_STRING'];
    3 $pos = strrpos($qs, '://');
    4 $pos = strpos($qs, '/', $pos + 4);
    5 $_SERVER['REQUEST_URI'] = substr($qs, $pos);
    6 $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
    7 include('index.php');
    8 ?>

    看来还是老外的技术牛人多,老外的文章很多时候更有借鉴价值