301直接在HTML文件中重定向

问题描述 投票:3回答:4

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

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

我对服务器唯一了解的是它在Windows上运行,我不了解服务器。

编辑:我的虚拟主机使用的是Microsoft IIS 7.0,因此我认为此处无法使用.htaccess?

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

html iis-7 redirect http-status-code-301
4个回答
4
投票

您无法使用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


3
投票

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

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

在其简化列表中,您可以这样做:

<httpRedirect>

2
投票

我想您可以使用JavaScript和/或meta-refresh(如Gumbo所建议)将用户从您的旧页面重定向到新页面。类似于:

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

-1
投票

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

<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>
© www.soinside.com 2019 - 2024. All rights reserved.