[英]IIS 7 URL Rewrite Rule Not Firing
我已經在IIS 7中為javascript和css版本創建了重寫規則。該規則定義如下:
<rewrite>
<rules>
<rule name="Js/Css Cache Rewrite" stopProcessing="true">
<match url="(.+/public/(javascript|css)/(Debug|Release)/.+\.)\d+\.(js|css)" />
<action type="Rewrite" url="{R:1}{R:4}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
當我針對正則表達式手動測試網址時,它會匹配。 網址遵循以下格式: http : //mytestsite.com/public/javascript/Release/SomeDir/jsfile.20100915140743.js
關於配置可能缺少的任何想法?
嘗試這個
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="permalink">
<match url="article/(\D+)(\/)*$" />
<action type="Rewrite" url="http://mywebsite.com/article.aspx?id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
您的正則表達式以(.+/public/
開頭,翻譯為“一個或多個字符,后跟/public/
/”。IIS傳遞給您的URL以/public/
或public/
開頭,都不是匹配您的正則表達式。您可能需要類似((^|.*/)public/
。
由於IIS的配置級別,傳入的URL最終變為“ public / ...”。 如果我在較高級別上進行配置,則它具有完整的URL。 我將正則表達式更改為以下內容:(。* public /(javascript | css)/(Debug | Release)/.+。)\\ d +。(js | css),它可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.