科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ISAPI Rewrite的问号匹配问题

ISAPI Rewrite的问号匹配问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ISAPI Rewrite的问号匹配问题

作者:csdn 来源:csdn 2009年12月16日

关键字: 问答 IIS

  • 评论
  • 分享微博
  • 分享邮件

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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章