Iis 将web.config从一个目录重写到另一个目录

Iis 将web.config从一个目录重写到另一个目录,iis,url-rewriting,web-config,Iis,Url Rewriting,Web Config,我正在努力将Apache.htaccess重写转换为IIS重写。我想从一个目录重写到另一个目录 示例:如果有人访问URI:/bookles/MyPDF.pdf,则重写将使用/res/pdf/MyPDF.pdf 这就是我到目前为止所做的: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules&g

我正在努力将Apache.htaccess重写转换为IIS重写。我想从一个目录重写到另一个目录

示例:如果有人访问URI:
/bookles/MyPDF.pdf
,则重写将使用
/res/pdf/MyPDF.pdf

这就是我到目前为止所做的:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Rewrite for booklets location" enabled="true">
            <match url="^booklets/(.*).pdf" />
            <action type="Rewrite" url="res/pdf/{R:1}.pdf" />
        </rule>

      </rules>
    </rewrite>
  </system.webServer>
</configuration>


任何帮助都将不胜感激。

在对其进行修补之后,我刚刚从规则中删除了
enabled=“true”
,并将结尾正则表达式添加到url匹配中,现在它可以工作了

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Rewrite for booklets location">
            <match url="^booklets/(.*).pdf$" />
            <action type="Rewrite" url="res/pdf/{R:1}.pdf" />
        </rule>

      </rules>
    </rewrite>
  </system.webServer>
</configuration>

除了您自己的答案之外,我建议您在正则表达式扩展之前添加
停止处理
属性和反斜杠点符号:

   <rule name="Rewrite for booklets location" stopProcessing="true">
      <match url="^booklets/(.*)\.pdf$" ignoreCase="true"/>
      <action type="Rewrite" url="res/pdf/{R:1}.pdf"/>
   </rule>

如果我想从/bookles/a.pdf重定向到.res/bookles/a.pdf,保持文件夹名称不变,我会给出任何建议