“硬”办法:要在APACHE的httpd.conf里配置,或者PHP文件根目录下的.htaccessRewriteEngine onRewriteRule ^([a-zA-Z]{1,})/([0-9]{1,}).html  /index?$1=$2“软”办法没实际用过不记得怎么说了,楼下补上。

解决方案 »

  1.   

    \/index\?([a-z]*[a-z])[=]([0-9]*[0-9])
    \1/\2.htmleditplus测试通过
      

  2.   

    to: hean(河岸) 你好,我想把全站做成静态的,自己写个脚本生成html保存,没有用rewrite,所以我想用 preg_replace 函数对网页中的连接处理一下,不过也谢谢你。
      

  3.   

    to dzrior:
    如果用 preg_replace 进行 替换, 应该如何写? 这个 $filetxt = preg_replace('/index\?xyz=(\d+)/', 'xyz/\$1.html', $filetxt);
    没有成功。
      

  4.   

    $str='/index?xyz=1';
    echo preg_replace('#\/index\?(.*?)\=(\d+)#i','/\\1/\\2.html',$str);
      

  5.   

    to:zeroleonhart(Strong Point:Algorithm)非常感谢,测试通过了。可否指点一下, # 是哪里的? 我在 php manual 的例子里没有见到。另外我又修改了原来的代码。 这样也是可以的。  echo preg_replace('/index\?xyz=(\d+)/', 'xyz/$1.html', $str);  我这里 xyz 参数名是比较固定的,所以我就直接当普通字符串处理了。