有两个不同的URL显示主页

时间:2018-04-15 作者:TheKidsWantDjent

我想有两个相同的网页不同的网址。我特别希望有一个特定的URL来显示我的frontpage。但是,应保留URL。所以这两个URL

www.mywebsite.com/
www.mywebsite.com/page1
都应该显示frontpage。我想这可以用WordPress的add_rewrite_rule 功能,但我还没有成功。

当我这样做的时候

add_rewrite_rule(\'^page1\', \'index.php\', \'top\');
它的行为更像是重定向。当我尝试访问时www.mywebsite.com/page1 我被重定向到我的主页。但我希望URL保持不变,但这似乎不行。

当我这样做的时候

add_rewrite_rule(\'^page1\', \'index.php?pagename=$matches[1]\', \'top\');
它只显示了www.mywebsite页面。com/page1而不是主页。

我在重写规则上摸索了好几个小时,现在我几乎不知所措了。我想要的是可能的吗?

<小时>Edit: 这与许多其他问题不同,因为我试图显示frontpage。提供的解决方案here 解决了这个问题,当您可以使用locations查询变量时,但我没有使用它。

1 个回复
SO网友:Milo

WordPress将始终尝试重定向到规范URL以防止重复内容,因此您必须禁用该机制才能获得另一个URL来显示该页面。

首先,您的重写规则:

add_rewrite_rule(\'^page1\', \'index.php?pagename=your-page-name\', \'top\');
然后筛选redirect_canonical 如果请求的URL是您的第二个主URL,则返回false:

function my_redir_check( $redirect_url, $requested_url ){
    if( home_url( \'/page1/\' ) == trailingslashit( $requested_url ) ){
        return false;
    }
    return $redirect_url;
}
add_filter( \'redirect_canonical\', \'my_redir_check\', 10, 2 );

结束

相关推荐