Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[作废] Googlebot 不识别 301 跳转到相对路径 #16

Open
cssmagic opened this issue Feb 28, 2016 · 0 comments
Open

[作废] Googlebot 不识别 301 跳转到相对路径 #16

cssmagic opened this issue Feb 28, 2016 · 0 comments

Comments

@cssmagic
Copy link
Owner

cssmagic commented Feb 28, 2016

经过近期的实测,发现 Googlebot 已经可以正确追踪重定向到相对路径的 301 跳转。

因此,本文内容永久性作废!

熟悉 SEO 或 HTTP 协议的朋友对 301 跳转(永久重定向)一定不会陌生,它通常用于域名变更、网站迁移等。例如,当你更换博客系统之后,为了保持博客文章原 URL 的有效性,通常就需要利用 301 跳转将访问者重定向到新地址,从而保证网站对用户和搜索引擎的友好性。

实现 301 跳转通常有 DNS 服务器、WEB 服务器、动态网页程序三种方式,最常用、最灵活的就是最后一种。以 ASP 为例,实现 301 跳转的代码通常是这样的:

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.cssmagic.net/"
Response.End
%>

这里有一个 “陷阱”。比如某一 URL 需要重定向到同一目录下的另一页面(比如 index.asp 跳转到 default.asp),根据正常思维,我们可能在 "Location" 字段中直接输入新页面的文件名(比如 "default.asp")就完事了。因为在同一目录下嘛,根据相对路径的原理,路径自然就可以省略。此时在浏览器中测试,通常也没有问题。

但是,一次偶然的机会,我发现 Googlebot 无法正确识别这种使用相对路径的 301 跳转。遇到这种情况,Googlebot 会在 “网站管理员工具” 当中提示 “无法追踪” 错误。目前尚未确定具体原因,可能 Googlebot 是以网站的根目录(而不是当前目录)为基准来计算相对路径的,抑或是它根本就认为在这里使用相对路径是不合法的。

不管怎样,当我把 ASP 代码中的相对路径替换为绝对路径(比如 "/blog/default.asp" 或更完整的 "http://www.cssmagic.net/blog/default.asp")之后,“网站管理员工具” 便不再报错了。

有鉴于此,撰文记录。使用 301 跳转的本意通常是考虑到 SEO,不过如果没摸透搜索引擎的脾气,效果可能就会大打折扣喽!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant