在多站点Wordpress中将主站点重定向到子站点


11

我有多站点wordpress,我想将主站点重定向到子站点之一,但是.htacecss中的重定向会出错。有什么方法可以将主站点重定向到其子站点。看起来不可能,但我不是Wordpress专家,所以只进行验证即可。

重定向应该像

重定向301 www.example.com/main-site www.example.com/main-site/sub-site

还是有其他方法可以做到?

Answers:


10

您可以使用该parse_request操作来完成此操作。只需在您的主博客上启用此插件即可。将以下代码放在.php文件中,并将其上传到您的插件目录。

/*
Plugin Name: Redirect Main Site To Sub-Site
Description: Redirect 'main-site' to 'main-site/sub-site/'
Version: 0.1
Author: WPSE
Author URI: http://wordpress.stackexchange.com
License: GPL2
*/

add_action('parse_request', 'redirect_to_sub_site');
function redirect_to_sub_site(){
    global $wp;

    #Sniff requests for a specific slug
    if('main-site' === $wp->request){

        #The URL to redirect TO
        $url = 'http://www.example.com/main-site/sub-site/';

        #Let WordPress handle the redirect - the second parameter is obviously the status
        wp_redirect($url, 301);

        #It's important to exit, otherwise wp_redirect won't work properly
        exit;
    }
}

如果您有任何问题,请告诉我。



1
@Toqeer您应该奖励赏金。不会把它带回来。;)
kaiser 2012年

刚被

我现在尝试使用最新的WordPress版本,但无法正常工作。你有什么主意吗?
用户

1
我找到了一个解决方案,而不是检查$ wp-> request,只需检查函数is_main_site();即可。
摩尔巴拉赞尼

3

似乎$wp->request以上答复中建议的始终是一个空字符串(在WPMS 4.5.2中),因此您可以对照进行检查is_main_site();


2

接受的答案不适用于Wordpress 4.9.8。这是经过更新和测试的代码。将其放在活动主题的function.php中。

<?php
function wpse66115_redirect_to_sub_site() {
  if ( is_main_site() ) {
    exit( wp_redirect( 'http://www.example.com/main-site/sub-site/', 301 ) );
  }
}
add_action( 'parse_request', 'wpse66115_redirect_to_sub_site' );
?>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.