日期:2014-05-17 浏览次数:20843 次
apache在mod_rewrite上处理?
?
问号有点特别,用转义\?,RewriteCond %{QUERY_STRING} ^(.+)$没效果,
?
例如:http://open.XXX.net/api/users/show?uid=215538,25201
重写到'http://open.XXX.net/api?api_name=users_show&uid=215538,25201'。直接匹配不出来
SQL代码
?RewriteRule ^api/(\w+)/(\w+)\?(.*) oauth/server/apicore.php?api_name=$1_$2&$3
?
在网上搜了很长时间,终于找了一篇 apache在mod_rewrite上处理?问号的相关文章,介绍了mod_rewrite手册的一个参数:
'qsappend|QSA'(追加查询字符串)
此标记强制重写引擎在已有的替换字符串中追加一个查询字符串,而不是简单的替换。如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。测试是是正确的
?
RewriteCond %{QUERY_STRING} ^(.*)$
?
RewriteRule ^api/(\w+)/(\w+)\?(.*) oauth/server/apicore.php?api_name=$1_$2&$3 [L,QSA]?