【问题标题】:Redirect anything not already redirected with 301 on IIS7在 IIS7 上重定向任何尚未使用 301 重定向的内容
【发布时间】:2014-07-08 13:27:57
【问题描述】:

我们最近使用 WordPress 在新域上设置了一个新网站,以使用平面文件替换我们的旧网站。由于时间限制,我们几乎没有时间进行计划,最终有人在 IIS 管理器中设置了重定向。

这意味着旧网站中几乎每个文件夹的每个页面都有以下内容:

<location path="old-file.html">
    <system.webServer>
        <httpRedirect enabled="true" destination="http://new-domain.com/new-page/" exactDestination="true" childOnly="true" httpResponseStatus="Permanent" />
    </system.webServer>
</location>

问题在于,这是一个拥有大约 15k 页面的大型网站,只有大约 1k 页面被手动重定向到新的 URI。这意味着我们可能有 14k 页面的遗留内容(实际上是死 URL,其中一些太旧了),但我们需要将其重定向到新域的根目录。

因此,几乎每个文件夹都有一个 web.config,其中每个重定向页面都有上述代码块的一个实例,但我们需要将未以这种方式重定向的每个页面重定向到固定位置。

由于页数的原因,手动配置不是一个选项。我曾想过使用一种工具添加一行 PHP 来处理对每个 .php 和 .html 文件的重定向(PHP 必须在此站点上解析 html 文件以获取遗留内容),但这远非理想。

理想情况下,我可以在 web.config 中添加一些内容,即“对于尚未通过 &lt;location&gt; 重定向的任何请求,将其重定向到“http:// domain.com”。即使这意味着在每个文件夹中的 web.config 中添加一些内容,这样可以节省几天的工作时间,比如如果没有匹配的位置,然后重定向。

我在 &lt;location&gt; 块中搜索了多个位置或通配符,但似乎不可能,所以我不确定在这里做什么——感谢任何帮助!

【问题讨论】:

    标签: iis redirect web-config seo http-status-code-301


    【解决方案1】:

    如果 url 现在已经失效并且您没有将它们重定向到的替换内容,那么正确的响应是返回 404/410。将大量死链接重定向到主页将被 Google 视为软 404。https://support.google.com/webmasters/answer/181708?hl=en

    【讨论】:

    • 通常我会同意,但不幸的是它们必须被重定向。不过,在这种情况下,您将如何返回 404?
    【解决方案2】:

    建议:为什么不将您的 404 页面重定向到您希望的任何其他页面的主页.. 如果有人登陆任何不再存在的旧页面应该转到 404,因此将 404 重定向到主页,这是电子商务的常见做法他们将停产的产品页面重定向到搜索页面的网站。如果这对您有帮助,您可以在 google 上搜索“将 404 重定向到 wordpress 主页”,有很多插件可以做到这一点,但作为 IIS,您可以简单地配置您的 web.config。

    【讨论】:

      猜你喜欢
      • 2013-05-12
      • 2012-02-24
      • 2010-12-25
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多