让我们来看看这个问题的网址
http://stackoverflow.com/questions/20306229/301-redirect-in-stackoverflow-how-does-it-works
如果我在网址的最后部分更改某些内容,请将其设为
http://stackoverflow.com/questions/20306229/301-r
我收到301消息,并且我被重定向到我写的第一个URL。
这是真正的SEO友好,恕我直言。问题是:他们是怎么做到的?是否有可能通过.htaccess实现它,还是有另一种方法可以实现它?在这种情况下哪种方式?
我不是真正的专家,但看起来无法通过htaccess达成......它看起来更像是
答案 0 :(得分:2)
我假设他们通过检查数据库中seo-title的页面来路由请求。
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
或mod_rewrite
检查数据库的方法。