扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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 相信可以看出解决方案
应该是这样: RewriteRule /\?(.*)$ /reg.php?id=$1 [I] |
我的ISAPI Rewriter配置跟你的一模一样的,但确实不行,这是什么原因?
用/?abc访问的日志里并无get到reg.asp,而是get到原来的default.asp
但规则如果改为
RewriteRule /t/(.*)$ /reg.php?id=$1 [I]
然后用/t/abc就可以访问到
/reg.php?id=abc
所以我的ISAPIRewriter配置并无错误,而且我觉得就是那个问号需要转义的问题
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者