我在做一个小的应用,所有的执行路径都类似这样的:http://localhost/site/index.php?do=$doname&action=$doaction&[后缀参数]我想把这个url rewrite成这样的形式:http://localhost/site/$doname/$doaction/[后缀参数]
$doname => 执行文件名
$doaction => 执行操作请问大家这样的写法该怎么写??
$doname => 执行文件名
$doaction => 执行操作请问大家这样的写法该怎么写??
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处理下就可以了!@
具体参考thinkphp框架源码
<?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匹配到的内容