我认为,这个问题与重写规则关系不大,从表面上看,重写规则应该是可行的,而与WordPress的规范重定向关系更大。
基本上,当WordPress收到url时,它会将其解释为一个查询。然后再次查看url以检查url是否“正确”(或规范)。例如,它可能有多余的正斜杠等等。
如果url被认为“不正确”-您将被重定向到“正确”的url。其思想是,您没有多个指向同一内容的url(它们都被重定向到一个规范url)。
负责此操作的文件是/wp-includes/canonical.php. 尤其是功能redirect_canonical()
连接到template_redirect
行动这个redirect_canonical()
函数有自己的筛选器:
add_filter(\'redirect_canonical\', \'wpse50912_redirect_canonical\',10,2)
function wpse50912_redirect_canonical($redirect_url, $requested_url){
//Check the requested url is an url for your (paginated) music archive
//Return the url you want in the address bar.
return $redirect_url;
}
您可以通过取消挂钩来禁用规范化
redirect_canonical
来自的函数
template_redirect
钩或者可以使用
redirect_canonical
. 无论哪种方式,我都建议暂时禁用,以验证这是原因。