摘要:什麼運行,Url重寫規則(303重定向)或Code.Behind Response.Redirect(...)?
如果我有這兩個東西:在 Page_Load事件
- ASP.Net頁面Page1.aspx的與Reponse.Redirect( 「/ Page2.aspx」)
- 將「*/Page1.aspx」重定向到「/Page3.aspx」的IIS上的URL重寫規則
什麼運行第一,1或2?
(ASP.Net版本爲4.0,IIS版本是7.5)
http://inhibitif.com/product/Hair-Free-Deodorant
這條路線被映射到頁面Product.aspx毛髮生
實際生活情況 - 免費面部血清是產品的關鍵。如果此頁面沒有找到產品密鑰,它會將Page_Load事件重定向到完整產品列表。
那個特定鍵(吹風免費除臭劑)已經改變(吹風自由除臭琴鍵石灰薄荷50毫升)爲每個站點所有者的請求(在我的掌握)。因此,對特定產品的任何呼叫都會被重定向到完整的產品清單(/產品)。因爲,搜索引擎優化,這將是更好地重定向到使用新密鑰(而不是重定向到一個通用的產品列表網頁)新產品的頁面,我已經在IIS
加入這個重寫規則<rule name="Old Product Key: Hair-Free-Deodorant" patternSyntax="Wildcard" stopProcessing="true">
<match url="*/product/Hair-Free-Deodorant" />
<action type="Redirect" url="/product/Hair-Free-Deodorant-Key-Lime-Mint-50ml" />
</rule>
規則從不觸發。重定向總是被調用。
- 我知道我可以將這個邏輯添加到Page_Load事件處理程序,但是, 不應該是另一種方式嗎? IIS規則應該優先獲得 嗎?
- 也許我的規則是錯的?
注意:重寫規則在網站上工作。例如,對「www.inhibitif.com」的任何調用被重寫爲「inhibitif.com」
感謝您添加該信息。我已經刪除了我的答案,因爲我不認爲它回答了您的實際問題,現在我看到了所有的細節(實際上它可能不正確)。對於它的價值,它看起來像IIS中的URL重寫規則沒有被某種原因觸發(或者找不到匹配,或者只是首先調用Page_Load代碼),因爲重定向是302(這就是Response。重定向使用)。 – jadarnel27
你是對的。重寫首先運行。匹配模式格式不正確。看到我自己對這個問題的回答。謝謝! – cockypup