StackOverflow 中的 301 重定向。它是如何运作的? [关闭]

2024-01-11

我们以这个问题的网址为例

http://stackoverflow.com/questions/20306229/301-redirect-in-stackoverflow-how-does-it-works

如果我更改 URL 最后部分的某些内容,使其类似于

http://stackoverflow.com/questions/20306229/301-r

我收到一条 301 消息,并且完全重定向到我编写的第一个 URL。

恕我直言,这确实是 SEO 友好的。问题是:他们是怎么做到的?是否可以通过 .htaccess 来实现它,或者还有其他方法可以实现?在这种情况下该采取什么方式?

我不是真正的专家,但看起来不可能通过 htaccess 到达......它看起来更像

  1. 我从 URL 中获取帖子 ID
  2. 我检查数据库以查看标题是否相同
  3. 如果不是,我会重写 URL 并发送 301 响应

我假设他们通过一个页面路由请求,该页面检查数据库中的搜索引擎优化标题。

RewriteRule ^questions/([0-9]+)/?$ routepage.php?id=$1 [R=301,L]
RewriteRule ^questions/([0-9]+)/(.*)/?$ routepage.php?id=$1&title=$2 [R=301,L]

还有一个文件routepage.php

$page = getSeoTitleFromDatabase( $_GET['id'] );
if( $page != $_GET['page'] ) {
  header( "HTTP/1.1 301 Moved Permanently" );
  header( "Locations: /questions/" . $_GET['id'] . "/" . $page );
}
//Do whatever...

我不知道检查数据库的方法.htaccess or mod_rewrite.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

StackOverflow 中的 301 重定向。它是如何运作的? [关闭] 的相关文章