【问题标题】:301 Redirect directly in HTML file301直接在HTML文件中重定向
【发布时间】:2010-10-30 09:05:21
【问题描述】:

我更改了网络上的一些文件名,现在我想将“301 永久移动”从旧文件重定向到新文件。

问题是我的网站完全由静态 html 页面构成,所有 301 重定向教程都描述了如何在 PHP、ASP、htaccess 等中进行。我想将重定向直接写入旧的 html 文件,是这样可能的?还是我必须联系我的网络提供商并解决服务器上的重定向问题?

我对服务器的唯一了解是它在 Windows 上运行,而我对服务器一无所知。

编辑:我的虚拟主机使用的是 Microsoft IIS 7.0,所以我认为这里无法使用 .htaccess?

编辑#2:刚才我的服务器管理员写信告诉我,即使我只使用静态 HTML 页面,我仍然可以使用 web.config 文件来重定向单个 html 文件。这很好。

【问题讨论】:

  • 检查 HTTP 标头字段 Server 以了解服务器如何识别自己。您可以使用web-sniffer.net 查看 HTTP 标头字段。

标签: html iis-7 redirect http-status-code-301


【解决方案1】:

您不能使用 HTML 更改 HTTP 状态代码。

但如果您使用的是 Apache 网络服务器,则可以使用 mod_rewritemod_alias 将此类请求重定向到新地址:

# mod_rewrite
RewriteEngine on
RewriteRule ^old\.html$ /new.html [L,R=301]

# mod_alias
RedirectMatch 301 ^/old\.html$ /new.html

编辑   当您现在澄清您使用的是 IIS 7 时,请查看其 <httpRedirect> element for HTTP redirects

【讨论】:

【解决方案2】:

不,这是不可能的。服务器不处理 HTML,因此无法设置 HTTP 标头。

您应该查看 Apache 配置(例如,使用 .htaccess)。

您可以这样做:

  Redirect 301 old.html http://example.com/new/
  Redirect 301 other-old.html http://example.com/newer/

【讨论】:

  • 不能设置 HTTP 头字段,没错。但是 meta 元素中的 http-equiv 应该是 HTTP 等效的。因此,这些信息应该被视为 HTTP 标头字段。
  • 不,http-equiv 应该由 HTTP 服务器而不是客户端读取和解析。 HTTP 服务器不这样做,客户端对此的支持很差。这是一个半死不活的功能,在 HTML5 中几乎完全被删除。
【解决方案3】:

我想您可以使用 JavaScript 和/或元刷新(如 Gumbo 所建议的那样)将用户从旧页面重定向到新页面。 比如:

<html>
<head>
  <meta http-equiv="refresh" content="0;url=http://YourServer/NewFile.html" />

  <script type="text/javascript">
    location.replace('http://YourServer/NewFile.html');
  </script> 
</head>
<body>
  This page has moved. <a href="http://YourServer/NewFile.html">Click here for the new location</a>
</body>
</html>

【讨论】:

  • 让 JS 重定向的唯一原因似乎是那些禁用元刷新的人,我想很多人不会这样做。我曾经在我维护的网站上使用此三级重定向,但后来放弃了 JS 重定向。讨厌元刷新以禁用它的人可能会讨厌 JS 做同样的事情。
【解决方案4】:

在 IIS 中重定向单个页面是一件简单的事情,并在您的 web.config 文件中完成。

  <location path="products.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://yourserver/products" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多