我正在研究使用mod_rewrite提供漂亮网址的cms。基本用例只需要任何路径并将其重写为单独的GET参数,如下所示:
RewriteRule ^search?(.+)[/]?$ index.php?p1=search$1[L]
我还有一个发送GET请求的搜索表单,但我不知道如何将其添加到重写规则中。例如:
http://site.domain/search?query=abc
应重写为:
http://site.domain/index.php?p1=search&query=abc
我尝试了以下内容,但有一些变体,但搜索参数不会出现在$ _GET中,因为它已被驱逐:
$user = User::create($data);
$mailer->sendEmailConfirmationTo($user);
Auth::logout(); //logout please!
return "account created!";
答案 0 :(得分:2)
更改[L]
[L,QSA]
QSA | qsappend 当替换URI包含查询字符串时, RewriteRule的默认行为是放弃现有查询 string,并将其替换为新生成的字符串。使用[QSA] flag导致查询字符串被组合。 http://httpd.apache.org/docs/2.2/rewrite/flags.html