搜索引擎的 URL 重写和索引

搜索引擎的 URL 重写和索引

对于网站,我希望使用 URL 重写以便轻松访问页面并更好地编制索引。

例如,假设有关莫扎特的页面是:

www.site.ext/composers/index.php?cmd=composers&id=123

与此相反,我希望访问者输入: www.site.ext/Mozart 并到达同一页面。

我也希望搜索引擎索引“友好”地址并且不知道“不友好的”真实地址。

下面的两个.htaccess文件都可以运行并可以访问相同的内容。

在浏览器中,第一个在地址栏中保留友好的 url(即www.site.ext/Mozart),

#Options +FollowSymlinks
RewriteEngine On
RewriteBase /
#AllowOverride all
RewriteCond %{HTTP_HOST} .
RewriteRule ^Mozart$ composers/index.php?cmd=composers&id=123 [L]

而第二个带有附加R=301选项,则永久重定向到“不友好”的地址:

#Options +FollowSymlinks
RewriteEngine On
RewriteBase /
#AllowOverride all
RewriteCond %{HTTP_HOST} .
RewriteRule ^Mozart$ composers/index.php?cmd=composers&id=123 [R=301,L]

由于类别名称永远不会随时间而改变,我假设第一种情况(仅进行 URL 重写而没有可感知的重定向)在这种情况下更好,因为搜索引擎会存储和显示友好的 URL,而不是不友好的 URL。事实确实如此吗?

关于整个网站的内部链接(即页面中的锚点),我认为我应该使用 PHP(或同等版本)动态地编写它们的友好 URL 版本而不是默认的不友好版本,以便搜索引擎不会索引不友好的 URL。

作为补充,为了避免索引重复的 URL(以防代码遗漏),我认为在每个页面中提及其友好 URL 作为规范链接是明智的:

<head>
...
<link rel="canonical" href="http://www.site.ext/Mozart" />
...
</head>  

上述假设是否正确或存在禁忌症?

答案1

由于类别名称永远不会随时间而改变,我认为第一种情况(仅进行 URL 重写而没有可感知的重定向)在这种情况下更好,因为搜索引擎会存储和显示友好的 URL,而不是不友好的 URL。事实确实如此吗?

是的。

关于整个网站的内部链接(即页面中的锚点),我认为我应该使用 PHP(或同等版本)动态地编写它们的友好 URL 版本而不是默认的不友好版本,以便搜索引擎不会索引不友好的 URL。

是的。仅链接到友好/“漂亮”的 URL。真正的/“丑陋”的 URL 绝不会暴露给用户、搜索引擎或任何类型的机器人。真正的/“丑陋”的 URL 完全在您的应用程序内部。

您可能需要执行的唯一额外步骤是,如果这是一个较旧的网站,并且旧的/“丑陋”的 URL 已被搜索引擎编入索引或被外部网站链接。在这种情况下,您还必须实施外部 301 重定向,从旧的/“丑陋”的 URL 到新的/“漂亮”的 URL,以保留 SEO。

我认为在每个页面中提及其友好 URL 作为规范链接是明智之举

是的,你可以这么做。这还可以确保任何(错误的)URL 参数不会被编入索引。

上述假设正确吗

是的。

相关内容