你可以在WP中这样做,但这里没有太多关于WordPress的具体内容wp_redirect.
这段代码可以放在插件中以加速检查,也可以直接放在函数中。php。基本上,您希望在WP不得不费劲思考之前尽快运行此程序。
if ( ! function_exists( \'wpse_20160508_check_redirects\' ) ) {
function wpse_20160508_check_redirects() {
$request = $_SERVER[ \'REQUEST_URI\' ];
$redirect = \'\';
/**
* http://example.com/School-A-Cost/ -> http://example.com/School-A/Cost/
*/
if ( preg_match( "/(School-(.*))-(Cost)(\\/.*)?/", $request, $matches ) && count( $matches ) >= 3 ) {
$path = $matches[ 1 ] . \'/\' . $matches[ 3 ];
if ( isset( $matches[ 4 ] ) ) {
$path .= $matches[ 4 ];
}
$redirect = site_url( $path );
}
if ( ! empty ( $redirect ) ) {
wp_redirect( $redirect, 301 );
exit();
}
}
}
// Run as soon as possible
wpse_20160508_check_redirects();
正如您所看到的,它将采用如下URL
/School-A-Cost/this-is-extra?foo=bar
并检查是否与正则表达式匹配。
Array
(
[0] => School-A-Cost/this-is-extra?foo=bar
[1] => School-A
[2] => A
[3] => Cost
[4] => /this-is-extra?foo=bar
)
从那里,您可以将这些部件组合在一起,形成一个新的位置
/School-A/Cost/this-is-extra?foo=bar
您将重定向到它。