我正在尝试将一些简单的 .htaccess 重写转换为 web.config xml;他们中的大多数都很好,但是我遇到了一个涉及查询字符串的特殊问题。
这是 .htaccess 规则:
RewriteRule ^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$ table-index.php?mode=delete&type=$1&id=$2 [QSA,L]
我是这样翻译的:
<rule name="delete">
<match url="^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$" ignoreCase="true" />
<action type="Rewrite" url="table-index.php?mode=delete&type={R:1}&id={R:2}" appendQueryString="true" />
</rule>
本质上,我为此做了与所有其他(工作)规则相同的事情,但这个不是打球。唯一的区别是这条规则[QSA]
在 .htaccess 中有一条指令,我appendQueryString="true"
为 XML 翻译了它。
该规则不会破坏 IIS,它也不起作用 - 应该显示为:
http://my.site/admin/table/mailing-list/delete/1?confirm=true
显示为
http://my.site/admin/table-index.php?confirm=true
这缺少很多重要信息,并导致应该发生的事情不会发生......当 URL 中没有 ?confirm=true 查询字符串时,相同的规则会正常运行。
有人可以帮忙吗?