本帖最后由 winver 于 2009-6-1 16:56 编辑 这几天在“伪静态”花了很长的时候,本身也是自己对正则不太熟造成!  所以不得不又发贴来请教大家,如果对这些比较熟朋友还希望多多的指导!谢谢!
问题:
RewriteRule news\.html\?page=(.+)$ news.html?page=$1 
这段是写在.htaccess里面的正则.http://localhost/eaglestar/news.html?page=2  这个是目前的分页状况底下是分页时的代码: } else {   $url .=  "?page";   } ......$pagenav .= " <a href='$url=1'>首页</a> ";  if ($prepg)  $pagenav .= " <a href='$url=$prepg'>上一页</a> ";  else  $pagenav .= " 上一页 ";  if ($nextpg)  $pagenav .= " <a href='$url=$nextpg'>下一页</a> ";  else  $pagenav .= " 下一页 ";  $pagenav .= " <a href='$url=$lastpg'>尾页</a> ";
复制代码代码里面有个在变的变量  ,  也就是$url 这里。 如果用正则表示了,代码里边没有变,就好像没有意义?  就是这里一直搞不清楚! 

解决方案 »

  1.   

    给你看下我这里的分页
    .htaccess
    RewriteEngine on
    RewriteBase /
    RewriteRule  ^(.+)-htm-([^\?]+)\.(.+)$ /$1.php?str=$2http://www.linala.com/index-htm-Command-search-keywords-%B0%AE%C7%E9-type-crbt-p-2.htmlp-2相当你的page=2
      

  2.   

    li36669957 : 你php代码 里面是怎么写的?
      

  3.   

    Rewrite的只是你的请求,你的代码它没法重写的RewriteRule ^(a|b)\.html$ $1.php [L]
    请求a.html,b.html的时候会请求 a.php b.php代码里你要把链接主动修改成 a.html这种类型的
    用为静态的时候通常把代码里的链接地址封在函数里,便于维护

    define('REWRITE', true);
    function rewrite_link($input){
       return REWRITE ? (替换规则) : $input; 
    }
    像wordpress drupal都有很好的机制
    通常我也把所有链接重写到一个文件处理
    RewriteRule ^(.*)$ urlrewrite.php?q=$1 [L,QSA]
      

  4.   

    $GET=split('-',$_GET['str']);
    for($i=0;$i<count($GET);$i=$i+2){
    if(isset($GET[$i]) && trim($GET[$i])!='')
    $this->In->$GET[$i]=urldecode($GET[$i+1]);
    }