我使用IIS URL重寫模塊通過重寫映射和友好URL掩蓋了我的內部URL,並且重寫規則(不重定向)。這是我的重寫地圖:用重要標籤重寫爲URL
<rewriteMap name="HashTest">
<add key="/nohash" value="/nohash.aspx" />
<add key="/hash1" value="/hashtest.aspx#hash1" />
</rewriteMap>
,這是我重寫規則:
<rule name="Rewrite rule1 for HashTest">
<match url=".*" />
<conditions>
<add input="{HashTest:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" />
</rule>
這是工作的網址,沒有井號標籤,所以我每次查詢www.mysite.com/nohash它顯示我的內容從www.mysite.com/nohash.aspx與我們更改瀏覽器的URL。
現在,當我嘗試重寫包含一個主題標籤,我收到了404錯誤的URL,例如www.mysite.com/hash1應該只是告訴我從/hashtest.aspx#hash1但我只是內容得到一個404.
現在,如果我將我的規則動作類型更改爲重定向它確實成功重定向,所以我不知道爲什麼它不能與重寫工作。
我知道哈希標籤不會發送到服務器的請求,但它是有意義的,如果我的重寫映射是向後的,如<add key="/hashtest.aspx#hash1" value="/hash1" />
。
任何有關爲什麼重定向與hastags一起工作,但重寫不是?我沒有結婚IIS重定向,如果你有另一個模塊或方法,我可以使用它非常受歡迎