2011-11-22 250 views
0

我想創建一個規則查詢重定向到一個頁面(不存在)到另一個網址重寫:重定向一個網頁到另一個

例子:

http://www.example.com/en/page.asp?id=2&... 

http://www.example.com/en-US/newpage.asp?id=2&... 

我使用這樣的規則:

<rule name="Redirect" stopProcessing="true"> 
    <match url="page\.asp\?(.+)$" /> 
    <action type="Rewrite" url="newpage.asp?{R:1}" /> 
</rule> 

但是這不起作用...我得到了404錯誤...

我的錯誤是什麼?

感謝

回答

3
  1. URL重寫的重寫操作僅用於重寫網頁網址 被顯示在瀏覽器,但它預計原來的頁面 存在於服務器上。對於您的情況,您需要重定向操作。
  2. 正則表達式需要更改以反映最終URL中的「en-US」。

試試這個代碼,而不是:

<rule name="Redirect" stopProcessing="true"> 
    <match url="en/page\.asp\?(.+)$" /> 
    <action type="Redirect" url="en-US/newpage.asp?{R:1}" redirectType="Permanent"/> 
</rule> 

永久重定向有助於使你的網站SEO(搜索引擎優化),防止搜索引擎機器人索引舊的URL(和2之間,因此不會分裂網頁排名網址)。

+0

好的,重定向是更好的,我不知道原來的頁面應該存在...但它反映後有意義;)。你的例子不起作用。我會更新我的問題,以便更加準確 – Tuizi

+0

啊,你有en-US在新的URL,這是不被你的正則表達式照顧。因此你得到了404.在我的答案中編輯了代碼來反映這一點。 – Kash

+0

錯誤404然而...爲什麼? – Tuizi

相關問題