不使用301而是使用PHP脚本进行重定向,是吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用301而是使用PHP脚本进行重定向,是吗?相关的知识,希望对你有一定的参考价值。
我一直在阅读关于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
我想知道您对此解决方案的意见。我知道,对于搜索引擎优化,没有固定的规则,或任何事情的确定性,但我想知道我在做什么是可以接受的。谢谢!
您的SEO策略不仅应关注您网页的可发现性,还应考虑适当的用户体验。让用户关注/ some-link /,然后登陆/index.php?page_id=123可能会使他们迷惑。
至于保存您的排名,302重定向(这是'位置'标题在PHP中的作用),不会影响PageRank,according to Google。我没有关于它如何对其他排名信号产生负面影响的信息。您可能会为指向同一资源的所有不同链接指定canonical URL。
此外,请注意,如果存在查询参数,则您的算法将不起作用。您可能还希望正确处理可选的尾部斜杠。
理想情况下,在我看来,您可能希望向外界提供一致的URL,而无需重定向。然后,您的URL处理将在内部将它们解析为各自的资源,在每次加载页面时提供规范URL。
以上是关于不使用301而是使用PHP脚本进行重定向,是吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 CloudFlare 301 重定向时,为啥脚本不呈现?