【问题标题】:301 redirect in StackOverflow. How does it works? [closed]StackOverflow 中的 301 重定向。它是如何工作的? [关闭]
【发布时间】:2013-12-16 20:36:16
【问题描述】:

我们以这个问题的 url 为例

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 响应

【问题讨论】:

标签: .htaccess mod-rewrite url-rewriting seo http-status-code-301


【解决方案1】:

我假设他们通过检查数据库的 seo 标题的页面路由请求。

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...

我不知道使用.htaccessmod_rewrite 检查数据库的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 2013-09-20
    • 2013-02-06
    • 2023-03-13
    • 2013-05-16
    相关资源
    最近更新 更多