【问题标题】:web.config rewrite from one directory to anotherweb.config 从一个目录重写到另一个目录
【发布时间】:2014-06-18 00:59:49
【问题描述】:

我正在努力将 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>

任何帮助将不胜感激。

【问题讨论】:

    标签: iis url-rewriting web-config


    【解决方案1】:

    除了您自己的答案,我建议您在正则表达式的扩展之前添加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>
    

    【讨论】:

    • 如果我想从 /booklets/a.pdf 重定向到 .res/booklets/a.pdf 保持相同的文件夹名称,我会给问题任何建议
    【解决方案2】:

    在修改之后,我刚刚从规则中删除了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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多