不使用301而是使用PHP脚本进行重定向,是吗?

问题描述 投票:0回答:1

我一直在阅读关于redirection,以及如何affect(或如果做得不好)SEO。

我正在将我的网站内容平台从Drupal更改为PHP自定义代码。

在我当前的网站中,我有两个指向同一链接的链接,如下所示:

... /节点/ 123

...... /我的节点标题

主要是因为Drupal允许您创建自定义链接,因此每篇文章都有一个默认的(node/123)和定制的(/my-node-title)。

我的问题是如何做以防止丢失每个链接可能有的任何SEO。

在新网站中,所有文章的结构都是这样的:content.php?id=123

我已经在数据库中存储了每篇文章的定制链接。

我没有进行301重定向,而是重定向所有不存在的链接,将其重定向到redirect.php页面来处理请求。在那里,我从链接中获取字符串,在数据库中查找它并重定向用户。

过程是这样的:

在.htaccess文件中:

RewriteRule ^.*$ ./redirect.php

在redirect.php中:

我抓住$_SERVER['REQUEST_URI']并使用explode()我得到链接的最后一部分(即我的节点标题),在数据库中查找它并获取文章的ID(即123)并将其保存在$link变量中。

然后我使用header()函数并执行重定向:header('Location: '.$link);

所以,人们仍然点击.../my-node-title,但当文章加载在导航栏时出现/content.php?id=123

我想知道您对此解决方案的意见。我知道,对于搜索引擎优化,没有固定的规则,或任何事情的确定性,但我想知道我在做什么是可以接受的。谢谢!

php .htaccess redirect
1个回答
3
投票

您的SEO策略不仅应关注您网页的可发现性,还应考虑适当的用户体验。让用户关注/ some-link /,然后登陆/index.php?page_id=123可能会使他们迷惑。

至于保存您的排名,302重定向(这是'位置'标题在PHP中的作用),不会影响PageRank,according to Google。我没有关于它如何对其他排名信号产生负面影响的信息。您可能会为指向同一资源的所有不同链接指定canonical URL

此外,请注意,如果存在查询参数,则您的算法将不起作用。您可能还希望正确处理可选的尾部斜杠。

理想情况下,在我看来,您可能希望向外界提供一致的URL,而无需重定向。然后,您的URL处理将在内部将它们解析为各自的资源,在每次加载页面时提供规范URL。

© www.soinside.com 2019 - 2024. All rights reserved.