2013-07-21 75 views
1

希望大家都在這個論壇上度過美好的時光。今天我加入了這個論壇,並帶來了一個問題。我的問題是...當舊頁面不存在時,在asp.net中永久重定向?

最近我創建了一個網站,當我創建它的網頁,然後1頁名稱是拼寫錯誤。現在我想將此頁面重定向到真實的頁面名稱。我使用此代碼:

<system.web> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"></modules> 

    <httpHandlers> 
     <add verb="*" path="misspell url " type="UrlRedirection" validate="false" /> 
    </httpHandlers> 
    </system.web> 

此代碼是在本地服務器罰款,但是當我上載的服務器驗證碼的節目500內部服務器錯誤。

積分: •我們使用了godaddy託管IIS 7。

需要幫助!

感謝高級。

+0

是不是[重寫規則](http://www.iis.net/learn/extensions/url-rewrite-module/user-friendly-url-rule-template)你需要什麼? – rene

回答

4

好消息,你正在使用IIS7和您的GoDaddy的託管支持UrlRewrite模塊:

這意味着你做到以下幾點:

  1. 刪除<httpHandler><add />你已經建立了。
  2. 查找<system.webServer>在你的web.config
  3. 在啓動和關閉標籤之間粘貼此:

代碼:

<rewrite> 
    <rewriteMaps> 
    <rewriteMap name="StaticRewrites" defaultValue=""> 
     <add key="/oldurl.aspx" value="/newurl.aspx" /> 
    </rewriteMap> 
    </rewriteMaps> 
    <rules> 
    <rule name="RewriteMap Rule"> 
     <match url=".*" /> 
     <conditions> 
     <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" /> 
     </conditions> 
     <action type="Redirect" url="{C:1}" /> 
    </rule> 
    </rules> 
</rewrite> 

您可以添加儘可能多的這些行的,只要你喜歡,如果你想重定向幾個頁面:

<add key="/oldurl.aspx" value="/newurl.aspx" /> 

我只是再次檢查了這一點我的服務器,它產生一個301重定向(這是一個永久的,SEO友好的重定向)。

+1

感謝您的回覆,但此代碼有同樣的問題.. 在本地服務器它工作正常。但是當我上傳代碼在服務器上它顯示相同的錯誤 ** 500內部服務器錯誤**。如果你知道這個問題的任何其他渠道,請儘快回覆我。 謝謝.. – gaurav

+0

500內部服務器錯誤可能與此代碼無關。也許web.config使用其他一些破壞站點的配置項。 – rtpHarry

+0

不幸的是,在實際的web.config中調試錯誤通常似乎是註釋掉某些塊,保存和重試的情況。我很想知道是否有人有更好的技術。 – rtpHarry