【问题标题】:Permanent redirection in asp.net when old page not exist?当旧页面不存在时,asp.net 中的永久重定向?
【发布时间】:2013-07-21 07:23:27
【问题描述】:

希望大家在这个论坛上度过愉快的时光。今天我加入了这个论坛,遇到了一个问题。我的问题是……

最近我创建了一个网站,当我创建它的页面时,有一个页面名称拼写错误。现在我想将此页面重定向到真实页面名称。我正在使用此代码:

<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。

需要帮助!

感谢高级。

【问题讨论】:

标签: asp.net iis-7 url-rewriting


【解决方案1】:

好消息,您使用的是 IIS7,并且您的 GoDaddy 主机支持 UrlRewrite 模块:

这意味着您执行以下操作:

  1. 删除您已设置的&lt;httpHandler&gt;&lt;add /&gt;
  2. 在您的 web.config 中找到 &lt;system.webServer&gt;
  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 友好的重定向)。

【讨论】:

  • 感谢您的回复,但这段代码也有同样的问题。在本地服务器上它工作正常。但是当我在服务器上上传这段代码时,它显示相同的错误 500 internal server error 。如果您知道此问题的任何其他解决方案,请尽快回复我。谢谢..
  • 500 内部服务器错误可能与此代码无关。也许 web.config 使用了其他一些破坏站点的配置项。
  • 不幸的是,在实际 web.config 中调试错误通常似乎是注释掉某些块、保存并重试的情况。我很想知道是否有人有更好的技术。
  • 你是对的,兄弟。我重新检查了我的代码并发现了错误,现在我解决了问题...
  • 您在另一台服务器上做了哪些更详细的修复?
猜你喜欢
  • 1970-01-01
  • 2012-06-16
  • 2015-02-09
  • 1970-01-01
  • 2014-01-12
  • 2011-07-29
  • 1970-01-01
  • 2012-02-24
  • 2017-04-19
相关资源
最近更新 更多