0

我正在尝试重写 iis7 url 以处理主目录中的查询。最终目标是让它附加index.php到查询字符串的开头。我尝试的一切都以 500 错误结束。我究竟做错了什么?

<rule name="post preview fix" patternSyntax="ECMAScript">
    <match url="^\?p=([0-9]+)&preview=true"  />
    <action type="Rewrite" url="index.php?p={R:1}&preview=true"  />
</rule>
4

1 回答 1

0

由于您希望将规则基于查询字符串,因此您必须使用条件。
这样的事情应该做:

<rule name="post preview fix" stopProcessing="true">
    <match url="^index.php$" negate="true" />
    <conditions>
        <add input="{QUERY_STRING}" pattern="^p=([0-9]+)&preview=true" />
    </conditions>
    <action type="Rewrite" url="index.php" />
</rule>

如果请求的页面不是index.php并且查询字符串匹配^p=([0-9]+)&preview=true,则触发 rwrite。
appendQueryString选项默认设置为 true,因此无需设置。

于 2013-02-25T21:34:42.683 回答