在web调试器中,301重定向页的html显示为:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.website.com/webpage.htm">here</a>.</p>
</body></html>我不得不在没有服务器支持的情况下重定向html页面。如果我用上面的代码替换页面html,这会和在apache上用.htaccess编写301重定向一样工作吗?我在google上查了一下,但是那些谈论301重定向的网站并没有包括这个重定向html页面的选项。
发布于 2011-05-13 01:58:14
理想情况下,您将发送301 HTTP响应状态代码。如果您不能这样做,即时的元刷新也会工作,并且是根据搜索引擎计算为301或302重定向.。
<meta http-equiv="refresh" content="0;url=http://example.com/new.html">刷新速率必须为零,才能被认为是30倍的重定向。
发布于 2011-05-13 02:19:45
不,简单地用你的例子替换HTML并不能达到你想要的效果。它将简单地将该页面显示给用户,因为Apache将发送'200‘状态代码。用户可以单击链接找到页面,但不会自动发生,蜘蛛也不会知道您的意思是对资源进行永久的重定向。
您需要在_mod_rewrite_或Apache文件中使用适当的重定向或_mod_rewrite_指令。
或者,如果您实际使用的是PHP或类似的东西,您可以将返回代码设置为301,输出一个位置响应头,然后基于页面的解决方案就可以工作了。在PHP中,它看起来如下所示:
<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );发布于 2011-05-13 02:54:04
同意他的观点,即你的方法实际上不会改变方向。用户可能知道点击链接,但原始页面仍将返回一个正常的'200‘状态代码,并继续显示在搜索结果(可能不是你想要的)。
为了保持页面排名,301状态代码是非常重要的。添加元刷新标记也是一个很好的选择,在大多数情况下可能会有所帮助(根据John的响应),但是您可能无法保证搜索引擎将来会接受它作为301重定向。添加正确的重定向到您的.htaccess (或Apache文件)将是您的最佳选择,以确保301个状态代码正在发送。
=======================
对于IIS7网站,只要安装了IIS重写模块,就可以在web.config中为站点创建重定向规则。这些规则也适用于.html文件。更多信息在这里:
http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/
=======================
如果您的web主机没有. .htaccess/mod_rewrite功能,另一种选择可能是更改您正在使用的web主机,在那里您可以设置服务器端重定向。只要该站点被正确移动,它应该对您的用户是相当无缝的。只有在维护页面排名非常关键的情况下,这种方法才会适用于极端情况。
https://webmasters.stackexchange.com/questions/13694
复制相似问题