2017-06-19 123 views
0

我想寫一個asp.net頁面重定向ASP> NET頁面重定向301

這個URL

https://mysiteurl/mystore/storename/about-the-store

應始終重定向到

https://mysiteurl/mystore/storename

約-的 - 存儲頁面存在,但我們不想刪除它。 我們有多個商店,每個商店都有關於商店的頁面。

同樣

https://mysiteurl/mystore/storename1/about-the-store

應始終重定向到

https://mysiteurl/mystore/storename1

我需要這個重定向發生,即使用戶鍵入完整的關於最店網址在瀏覽器中,它應該成爲301重定向。

此規則僅適用於商店,例如規則只應在URL中可用「mystore」時重定向。

對於我的應用程序中有多少商店沒有限制。

回答

0

您需要在IIS管理器中配置重寫映射和規則。打開IIS管理器,找到您的網站並導航到「URL重寫」。

該程序的深入文檔可以找到here

一旦你創建了一個重寫映射specifing新的網址來取代舊的URL,像下面應該出現在你的web.config文件:

<rewriteMaps> 
<rewriteMap name=」Redirects」> 
<add key=」/mystore/storename/about-the-store」 value=」/mystore/storename」 /> 
<add key=」/mystore/storename1/about-the-store」 value=」/mystore/storename1」 /> 
</rewriteMap> 
</rewriteMaps> 

在這裏,我們基本上是提供ASP .net與我們頁面的新位置,並執行從舊URL到新的301重定向。

爲了保持乾淨,您可以向項目的根目錄添加一個名爲'redirect.config'的新文件,並將上述內容複製並粘貼到文件中,然後將其添加到system.webServer下的web.config文件中:

<rewrite> 
<rewriteMaps configSource=」redirect.config」 /> 
<rules> 
<rule name=」Redirect Rules」> 
<match url=」.*」 /> 
<conditions> 
<add input=」{Redirects:{REQUEST_URI}}」 pattern=」(.+)」 /> 
</conditions> 
<action type=」Redirect」 url=」{C:1}」 /> 
</rule> 
</rules> 
</rewrite> 

在這裏,我們將web.config指向我們的redirect.config文件並傳遞需要的參數或「規則」以使URL切換。

+0

redirect.config包含商店的名稱,但在我的情況下會有成千上萬的商店,所以我不能在這樣的配置文件中添加條目。 – Ali

+0

在這種情況下,我認爲重寫地圖仍然是您最大的希望。您應該可以自定義參數以滿足您的需求。也許這[後](https://stackoverflow.com/questions/18877075/multiple-301-redirect-for-multiple-pages-or-url)可以有一些幫助?祝你好運。 –