我想在RedirectMatch
中为{press}中的自定义帖子类型设置一个.htaccess
,然后将自定义帖子类型slug附加到它作为get参数。自定义帖子类型为“ programme
”
考虑到我对正则表达式都一无所用,并且我不太熟悉Apache重定向,我对尝试什么或在何处查找示例材料有些迷茫。
我认为我需要执行以下操作才能重定向所有/ programmes:
RedirectMatch ^/programmes.*)$ http://example.com/staffroom?programme=$1
我也在主题扩展代码中尝试过此操作:
// Setup "Programme" (Custom Post Type) specific redirects for the sitemap:
add_action( 'template_redirect', 'programme_redirect_post' );
function programme_redirect_post() {
$queried_post_type = get_query_var('post_type');
// Check that the post_name is equal to the programme slug:
if ( is_single() && 'programme' == $queried_post_type ) {
// If true, get the post_name (which I believe is the slug):
$programme_slug = get_query_var('post_name');
// A little string format manipulation:
$programme_redirect = sprintf("/staffroom?programme=%s", $programm_slug);
// Go Wordpress Redirect! (301: Permanent)
wp_redirect( $programme_redirect , 301 );
exit;
}
}
预期结果是用户导航至:
https://example.com/programmes/the-meaning-of-life https://example.com/programmes/more-about-the-meaning-of-life
它们分别很快被重定向到:
https://example.com/dashboard?programme=the-meaning-of-life https://example.com/dashboard?programme=more-about-the-meaning-of-life
有效地向用户隐藏程序路由。
但是,不幸的是,我没有任何实际需要注意的结果。
N.B。我希望能够使用Wordpress以编程方式完成上述所有操作……只是为了保持 .htaccess
干净。