Apache mod_rewrite 经验一则

  周末呼吸道发炎,今早起床发现还没好,所以在家休养。照理说这么个小毛病是不影响上班地,但是之前有过好几次类似的经验——呼吸道发炎,还去上班,结果在空气污浊的办公司待了一天,随后就严重起来啦!顺便在这儿鄙视一下公司办公室的空气,由于层高太低,电脑众多,通风不畅,基本上下午 2 点一过就头昏脑胀~~再说下去要坏了心情啦:D

  周末研究了一下 Apache 的 rewrite,这个东西有 RE 基础的人上手还是比较快的。不过期间遇到的小问题折腾了好久,我一开始试验的时候规则是放在 httpd.conf 里面的,后来移到 .htaccess 里面就没了效果,开始以为是没有开启对 .htaccess 的支持,后来经过大量折腾,才明白是规则写在 httpd.conf 和写在 .htaccess 里面,收到的 URL 不一样,比如访客用 http://www.foo.com/ 来访问,在 httpd.conf 里面拿到的 URL 串是“/”,而 .htaccess 里拿到的居然是“”,即便 .htaccess 所在目录的内容已经被配置成虚拟主机也一样,所以在 httpd.conf 里面的如下规则:

  1. RewriteRule /$ index.php?rewrite=1 [L]

放到 .htaccess 里面以后要改成:

  1. RewriteRule ^$ index.php?rewrite=1 [L]

  这就是有经验跟没经验的区别,浪费了时间,走了弯路换回来的经验,值得小记一下:)

Leave a Reply