2014-04-28 92 views
0

我使用IIS重寫模塊。我有幾個靜態文件,並將它們儲存在IIS重寫:爲什麼IIS顯示重寫URL?

網站/靜態/ XYZ/ABC

我添加IIS重寫規則如下:

regular expression pattern: 

xyz/.+ 

rewrite URL: 

/static/{R:0} 

首先,如果I型(帶結束/)

http://mysite/xyz/abc/ 

一切似乎工作得很好。瀏覽器地址欄顯示我輸入的內容。

其次,如果I型(不帶結尾/)

http://mysite/xyz/abc 

的網站仍正常顯示的內容,但瀏覽器地址欄的變化(通過添加靜態和結尾/)

http://mysite/static/xyz/abc/ 

如何讓IIS在第二種情況下不顯示/靜態?

感謝和問候。

UPDATE

正則表達式被使用。

  <rule name="inauguralball"> 
       <match url="inauguralball(/.*)?" /> 
       <action type="Rewrite" url="/static/{R:0}" /> 
      </rule> 
+0

你能發佈從web.config中複製的實際規則嗎? –

+0

布蘭登,我按照你的要求發佈了它。謝謝你幫助我! – curious1

+0

瀏覽器不應該更改地址欄中顯示的URL。這隻會發生在重定向規則,而不是重寫規則。你確定你沒有任何其他可能相沖突的重定向規則嗎? –

回答

3

我想我在這裏找到了你的答案:http://support.microsoft.com/kb/298408/EN-US。如果省略斜線並且IIS找到與您的請求相匹配的目錄,則會爲您執行重定向。我相信這是您的重定向來自哪裏,從而將您發送到/ static/inauguralball /。請注意,IIS還爲您添加了斜線,因爲它檢測到該目錄存在。

你能否確定你的hrefs總是指向/ inauguralball /(帶有斜線),以便IIS不會爲你執行自動重定向?

+0

布蘭登,感謝您的信息。這是我猜到的,但你給出了明確的答案。非常感謝!!! – curious1