类似如下的格式http://www.baidu.com/s?wd=hello%B2%CB%B2%CB&pn=90&f=1&usm=1http://www.baidu.com/s?wd=ookk%B2%CB%B2%CB&pn=30&f=1&usm=1如何伪静态化成下面的格式http://www.baidu.com/1234569999.html  其中1234569999.html  也可以为数字与英文混合的123456adfd.html  。这个规则如何写?
我在线等。谢谢

解决方案 »

  1.   

    http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#mapfunc
      

  2.   

    o%B2%CB%B2%CB& 这些怎么样的, 直接放在url里?
      

  3.   

    是这样的。wd=hello%B2%CB%B2%CB&pn=90&f=1&usm=1 根据后面得hello%B2%CB%B2%CB   90   1  1   要么直接合并一起 要么合并后通过MD5转换成字母数字。但是我不知道怎么转,所以上来问问。。    
      

  4.   

    楼主:如果用win做服务器就不用看了...另外使用RewriteMap,rewrite规则必须放在httpd.conf里,不能使用.htaccess.rewrite ruleRewriteEngine On
    RewriteMap escape prg:/usr/local/rewrite.pl #或者rewrite.php
    RewriteRule ^/([^/]*)$ /index.php?w=${escape:$1} [L,PT]
    prg表示使用自定义脚本rewrite.pl
    #!/usr/bin/perl
    use MIME::Base64;
    $| = 1;
    while (<STDIN>) {
        print decode_base64($_)."\n"
    }这里用的base64加密,看你的需求必须要可逆的汉字->数字的方式..MD5是肯定不行的.或者rewrite.php(建议最好用perl做MapFunc)
    #!/usr/local/php/bin/php -q
    <?php
    while($in = trim(fgets(STDIN)))
                    fputs(STDOUT, base64_decode($in) . "\r\n");
    ?>
    按apache官方所说,自定义的mapfunc最好傻瓜+简单,否则会严重影响性能..按照上面方式的重写例子.
    http://www.baidu.com/5Lit5Zu9 -> http://www.baidu.com/index.php?w=中国