我在做一个小的应用,所有的执行路径都类似这样的:http://localhost/site/index.php?do=$doname&action=$doaction&[后缀参数]我想把这个url rewrite成这样的形式:http://localhost/site/$doname/$doaction/[后缀参数]
$doname => 执行文件名
$doaction => 执行操作请问大家这样的写法该怎么写??

解决方案 »

  1.   

    RewriteEngine on
    RewriteBase /
    RewriteRule   ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(.*?)$ index.php?do=$1&action=$2&$3  打印GET 得到的是 
    array(3) { ["do"]=> string(2) "aa" ["action"]=> string(2) "aa" ["a/a"]=> string(0) "" } 
    后缀参数 用php处理下就可以了!@
      

  2.   

    完全可以自己利用伪静态的方法来自己定义重写url,
    具体参考thinkphp框架源码
      

  3.   

    可以在index.php里面写上
    <?php
        if(isset($_REQUEST['do']) && isset($_REQUEST['action']))
        {
            header("Location:/site/" . $_REQUEST['do'] . "/" . $_REQUEST['action'] . "/" . $_SERVER['QUERY_STRING']);
        }
    ?>APACHE的RewriteRule是不带query string的
    如果要匹配query string ,请用RewriteCond来匹配,再在后面用RewriteRule里用%n表示前面RewriteCond匹配到的内容