我们以这个问题的网址为例
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 到达......它看起来更像
- 我从 URL 中获取帖子 ID
- 我检查数据库以查看标题是否相同
- 如果不是,我会重写 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(使用前将#替换为@)