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

Sam*_*ook 2 iis web-config url-rewriting

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

示例:如果有人访问 URI:/booklets/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>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Uri*_*iil 5

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

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