日期:2014-05-16  浏览次数:21867 次

ISAPI Rewrite的问号匹配问题
写rewriterule用到: 
/?kkkkkk 
要匹配到 
/reg.php?id=kkkkkk
请问如何写正则规则?主要是这个问号
RewriteRule /?(.*)$ /reg\.php\?id=$1
RewriteRule /\?(.*)$ /reg\.php\?id=$1 
RewriteRule /[?](.*)$ /reg\.php\?id=$1 
都不行

------解决方案--------------------
RewriteRule /?(.*)$ /reg.php?id=$1 [I]
------解决方案--------------------
这是因为 url 里面 ? 后面的不被 apache 认为是 requested uri 的内容,所以你怎么写都无法取得。
建议你修改 url 格式:比如把 ? 去掉;或者改变获取方式:比如改成 RewriteRule /?(.*)$ /reg.php?id=$1&%{QUERY_STRING} 你看看 rewrite log 相信可以看出解决方案,希望对你有帮助 :)