在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页面的此选项。

#1 楼

理想情况下,您将发送301 HTTP响应状态代码。如果您不能执行此操作,则立即执行的元刷新也将起作用,并且取决于搜索引擎,该刷新将被视为301或302重定向。速率必须为零才能被视为30倍重定向。

评论


谢谢,那篇文章很好地阐明了这一过程。我上面的html示例中的0延迟元刷新=可怜的人301。

–江铃汽车
2011年5月13日在2:49

#2 楼

不,仅用示例替换HTML不会达到您想要的效果。它只会向用户显示该页面,因为Apache会发送一个“ 200”状态代码。用户将能够单击链接来找到页面,但是页面不会自动发生,并且蜘蛛程序将不知道您要实现资源的永久重定向。

您将需要使用适当的页面。 .htaccess或Apache conf文件中的Redirect或_mod_rewrite_指令。

或者,如果您实际上正在使用PHP或类似的东西,则可以将返回码设置为301,输出Location响应标头,然后输入基于页面的解决方案将起作用。在PHP中看起来像这样:

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );


评论


+1关于200状态代码的要点。没想到。不幸的是,这是一台IIS服务器,我没有比ftp更深入的访问。这些页面是.html,因此不会处理asp重定向。

–江铃汽车
2011年5月13日在2:53

在那种情况下,约翰·康德(John Conde)的答案是最好的-我忘记了元刷新的等效性。

– Hissohathair
2011年5月13日在7:30

#3 楼

与Hissohathair达成协议,因为您的方法实际上不会重定向。用户可能知道单击链接,但是原始页面仍将返回正常的“ 200”状态代码,并继续显示在搜索结果中(可能不是您想要的那样)。

为了维持网页排名,301状态代码非常重要。添加元刷新标签也是一个不错的选择,并且在大多数情况下可能会有所帮助(根据John的回答),但是您可能无法保证搜索引擎将来会接受它作为301重定向。为确保发送301状态代码,向您的.htaccess(或Apache conf文件)添加适当的重定向将是您的最佳选择。

编辑:

== =====================
对于IIS7网站,只要安装了IIS URL Rewrite模块,就可以创建重定向规则在网站的web.config中。这些规则也适用于.html文件。此处的更多信息:

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

=====================
如果您的虚拟主机没有.htaccess / mod_rewrite功能,另一种选择是更改您正在使用的Web主机,您可以在其中设置服务器端重定向。只要正确移动了站点,它对您的用户就应该是无缝的。如果维护页面排名非常关键,则此方法仅适用于极端情况。