2010-12-01 234 views
0

我剛使用URL重寫更改了其中一個網站的頁面URL的結構,我需要將舊結構重定向到新結構(以處理由Google索引的舊鏈接)。我的問題是,我想重定向到一個重寫的URL,而不是一個實際的URL,我找不到一種方法來做到這一點。ASP.Net 301重定向和URL重寫

的變化之前,我有以下網址:

重寫規則^產品/([^ _ \ r \ n //] *)/([^ _ \ r \ n //] *)/ $ /products.aspx?cat=$1 & SUBCAT = $ 2 NC,L]

更改後,我有以下:

重寫規則^產品 - ([^ _ \ r \ n //] * ) - ([^ _ \ r \ n //] *)/ $ /products.aspx?cat=$1 & subcat = $ 2 [NC,L]

我現在想要做的是發出301重定向urls t帽子匹配

^products /([^ _ \ r \ n //] *)/([^ _ \ r \ n //] *)/ $ to^products - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/ $,

即具有以下規則:

重寫規則^產品 - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/ $ products - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/[NC,L]

上述規則產生以下錯誤:

「的頁面沒有正確重定向」

有沒有辦法用.Net或使用Url重寫規則來做到這一點?

任何幫助將不勝感激。

+0

你用什麼改寫?你使用的是什麼版本的IIS? – CodeMonkey1313 2010-12-01 20:51:25

回答

0

好的,我使用以下規則固定的問題: - ([^ _ \ r \ n //] *) -

重寫規則^產品([^ _ \ r \ n //] *)/$ /redir.aspx?url=/products-$1-$2/ [NC,L]

redir.aspx頁面的功能是將301代碼寫入標題並傳輸到作爲傳遞的新url一個參數。