用php简单实现Search Engine Friendly的URL

上次写了Search Engine Friendly的URL设计 - 俺在这个事上面折腾,要实现这个 http://www.myhost.com/foo.php?a=A&b=B&c=C -> http://www.myhost.com/foo.php/a/A/b/B/c/C的url转换,实际上还有不同的办法.

比如说我用的是虚拟主机,也想实现url优化,但是我没有服务器权限,这时候可以从PATH_INFO来下手.

访问http://www.myhost.com/foo.php/a/A/b/B/c/C这个url的时候,如果apache的AllowPathinfo已经打开,用php访问$_SERVER['PATH_INFO']可以获得a/A/b/B/c/C这串字符 这时候再用php加以解析:

PHP:
  1. if(!empty($_SERVER['PATH_INFO'])) {
  2.  $paths = explode('/', substr($_SERVER['PATH_INFO'], 1));
  3.  for($i = 0, $cnt = count($paths); $i <$cnt; $i++)
  4.   $_GET[$paths[$i]] = @(string)$paths[++$i];
  5. }

这样就可以简单的将PATH_INFO转换为全局的$_GET数组,这样还有个好处

  • http://www.myhost.com/foo.php?a=A&b=B&c=C
  • http://www.myhost.com/foo.php/a/A/b/B/c/C
  • 上面的url同时可以访问,保证了通用性 

    作者: volcano 发表于3月 28, 2006 at 12:03 pm

    版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原始出处作者信息及此声明

    Tags: ,,

    3 条评论 »

    1. xianwei 于 2006-03-28 @ 12:06:48 留言

      老大,我看了你的BLOG都想揍你了 , 好好的内容 , 被你那史无前例糟糕的排版形式看的我脑子发晕, 整个字体就灰蒙蒙的感觉, 而且有些字体都有点看清,简直在虐待我已经有 近视的眼睛了.

    2. volcano 于 2006-03-28 @ 12:49:59 留言

      汗,有这么惨?我这就改

    3. x 于 2006-07-25 @ 17:00:57 留言

      还可以用$_SERVER[”REQUEST_URI”]

    RSS 为此帖反馈评论 · 反向跟踪 网站

    留条评论