2017-12-07 44 views
0

Ich versuche einen URLRewrite zu schreiben, um einer URL einen abschließenden Unterstrich hinzuzufügen, wenn dieser bereits einen Unterstrich enthält. Dies ist speziell für PDFsURLRewrite-Regel zum Hinzufügen eines abschließenden Unterstrichs zur URL

Eingehende URL: https://localhost/pdf/mypdf_.pdf Rewrite URL: https://localhost/pdf/mypdf__.pdf

Wenn die eingehende URL keinen Unterstrich hat, dann sollte die Regel nicht ausgeführt werden.

  <rule name="Init PDF Rules"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{REQUEST_URI}" pattern="^.*_.pdf.*$" /> 
       </conditions> 
       <action type="Redirect" url="{C:1}_{C:2}" /> 
      </rule> 

Ich habe versucht, durch einige Stapelaustausch Fragen gehen, konnte aber die perfekte Regel nicht schreiben.

Antwort

0

Die folgende Regel funktioniert nur für nicht vorhandene Dateien mit einem Namen, der mit einen Unterstrich endet.

<rule name="rewrite pdf file names ending with a _"> 
    <match url="^(.*/)?(.*?)([^_]_)(\.pdf)$" /> 
    <conditions logicalGrouping="MatchAll"> 
     <!-- skip rewriting if the path is a directory or an existig file --> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="{R:1}{R:2}{R:3}_{R:4}" /> 
</rule> 
Verwandte Themen