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