如何获得更好的性能,从domain.tld/35重定向到domain.tld/Full-Permarink?

时间:2014-09-27 作者:John

基于this answer 我创建了一个函数来更改来自域的短链接。tld?p=435到域。tld/435和重定向域。tld/435至域。tld/全永久性:

function shorter_shortlink() {
  global $post;
  $shortURL = get_bloginfo(\'url\').\'/\'.$post->ID;
  if(!empty($shortURL)) {
  return $shortURL;
  } else {
  return get_bloginfo(\'url\').\'/?p=\'.$post->ID;
  }
}
add_filter(\'pre_get_shortlink\', \'shorter_shortlink\'); 

add_action( \'wp\', function(){
  global $wp;
  if( is_numeric( $wp->request ) && empty( $wp->query_vars[\'page\'] ) )
  {
  wp_redirect( get_permalink( absint( $wp->request ) ), 301 );
  exit();
  }
});
在测试时,这种方法似乎不是性能最佳的方法。我想知道是否有更好的解决办法?

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

我担心这里的答案是,重定向永远不会带来好的性能。尤其是通过PHP来实现,因为它处理得很晚。

您可以考虑通过apache来实现,尤其是.htaccess 文件,在PHP/WordPress发挥作用之前就截获了。这会更好,但当然这仍然是一个重定向。但正如@birgire在他的comment, 你需要具体/准确的规则,所以这不是很实用。

另一个想法,做一些javascript“魔术”,同样comment.

如果你问我这不值得,要么重定向,要么不重定向,就决定吧。

结束

相关推荐

Redirect not working

我想重定向http://xyz.com/freebooks/ 到http://xyz.com/shop/?min_price=0&max_price=0我将此添加到。htaccess,它会重定向到商店页面,但不会像原始url那样保留/免费图书/或过滤器。.htaccees:RewriteEngine On RewriteRule ^freebooks$ index.php?p=5&min_price=0&max_price=0 [NC,L] # BEGI