我正在考虑用 IIS 7 URL 重写 2.0 规则替换一个 PHP 重定向脚本,该脚本将“/”上的查询字符串拆分。
这是从原始重定向脚本中的请求中提取信息的代码:
list($campaign,$banner,$add_code,$deploy,$opt) = split("/",$_SERVER['QUERY_STRING']);
这就是我认为可以替代的东西:
<rule name="MyRule">
<match url="(.*?)/(.*?)/(.*?)/(.*?)/(.*)" />
<action type="Redirect" url="TestRedirectTarget.aspx/?campaign={R:1}&banner={R:2}&add_code={R:3}&deploy={R:4}&opt={R:5}" />
</rule>
我在问是否有什么我没有想到的匹配正则表达式与 PHP string-split-assiged-to-list 逻辑的功能相同。我发现了一个问题,我不得不使用惰性匹配来处理超过 5 条斜杠分隔的 url 的情况。我想知道是否还有其他情况会导致结果不一样。