我已经在网络上更改了一些文件名,现在我想使“ 301永久移动”从旧文件重定向到新文件。
问题是我的网站完全由静态html页面组成,所有301重定向教程都描述了如何在PHP,ASP,htaccess等中进行操作。我想将重定向直接写入旧的html文件中,是否可能?还是我必须联系我的Web提供商并解决服务器上的重定向?
我对服务器唯一了解的是它在Windows上运行,我不了解服务器。
编辑:我的虚拟主机使用的是Microsoft IIS 7.0,因此我认为此处无法使用.htaccess?
编辑#2:刚才我的服务器管理员告诉我,即使我只使用静态HTML页面,我仍然可以使用web.config文件来重定向单个html文件。这非常好。
您无法使用HTML更改HTTP状态代码。
但是,如果您使用的是Apache网络服务器,则可以使用mod_rewrite或mod_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。
不,不可能。服务器未处理HTML,因此无法设置HTTP标头。
您应该改为查看Apache配置(例如,使用.htaccess)。
在其简化列表中,您可以这样做:
<httpRedirect>
我想您可以使用JavaScript和/或meta-refresh(如Gumbo所建议)将用户从您的旧页面重定向到新页面。类似于:
Redirect 301 old.html http://example.com/new/
Redirect 301 other-old.html http://example.com/newer/
在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>