本帖最后由 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 这里。 如果用正则表示了,代码里边没有变,就好像没有意义? 就是这里一直搞不清楚!
问题:
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 这里。 如果用正则表示了,代码里边没有变,就好像没有意义? 就是这里一直搞不清楚!
.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
请求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]
for($i=0;$i<count($GET);$i=$i+2){
if(isset($GET[$i]) && trim($GET[$i])!='')
$this->In->$GET[$i]=urldecode($GET[$i+1]);
}