2013-07-21 38 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