我想有两个相同的网页不同的网址。我特别希望有一个特定的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查询变量时,但我没有使用它。
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 );