IIS - 配置文件不是格式良好的XML

时间:2015-11-07 17:39:34

标签: regex iis url-rewriting

<rule name="Posts2" enabled="true">
    <match url="^index.cfm\?section=latest.news&id=(.*)" />
    <action type="Rewrite" url="post.php?id={R:1}" />
</rule>

问题在于正则表达式 - 任何想法都存在?我似乎无法解决这个问题。我在http://www.xmlvalidation.com/上运行它并且说

The reference to entity "id" must end with the ';' delimiter.

当我将&符号更改为&amp;时,尽管在IIS中传递了测试,但重写似乎不适用于/index.cfm?section=latest.news&id=14726等URL。即使我逃脱了点和问号,它也不起作用

1 个答案:

答案 0 :(得分:1)

尝试使用{QUERY_STRING}输入conditions或许:

<rule name="Posts2">  
  <match url="index\.cfm$" />  
    <conditions>  
      <add input="{QUERY_STRING}" pattern="section=(latest\.news)" />  
      <add input="@{C:1}@_{QUERY_STRING}" pattern="@([^@]+)@_.*id=(\d+)" />  
    </conditions>  
   <action type="rewrite" url="post.php?id={C:2}" appendQueryString="false"/>  
 </rule>

包含查询字符串的URL通常可以通过这种方式更好地处理,但如果您真的不想使用此路由,请确保包含所有正确的标记,并尝试在{{1}之间转义. }}

latest\.news