Wordpress - 在 url 中重写或隐藏 wp-json

Ign*_*kis 5 php api wordpress .htaccess url-rewriting

我想隐藏/wp-json/url,因为我不想让任何人知道该网站是建立在 wordpress 上的。我尝试在 中重写规则.htaccess,但/api只重定向到/wp-json所以这不是我真正想要的。

RewriteRule ^api/(.*)$ /wp-json/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)

这些根本不起作用:

RewriteRule ^api$ /wp-json [L]
RewriteRule ^api/(.*)$ /wp-json/$1 [L]
Run Code Online (Sandbox Code Playgroud)

我也尝试过 site_url 钩子事件,但不幸的是它根本不起作用:

add_filter('site_url', 'api_filter', 10, 3);
function api_filter($url, $path, $orig_scheme) {
    $old  = array('/(wp-json)/');
    $new  = array('api');
    return preg_replace($old, $new, $url, 1);
}
Run Code Online (Sandbox Code Playgroud)

小智 7

您可以使用过滤器rest_url_prefix进行重写:

add_filter( 'rest_url_prefix', function() {
    return 'api';
});
Run Code Online (Sandbox Code Playgroud)

记得在把上面的代码添加到functions.php之后访问Settings->Permalinks来刷新permalinks

  • 是否可以重写整个 wp-json/wp/v2/ 部分?rest_url_prefix 过滤器只重写 wp-json,对吗?我目前正在构建一个应用程序并希望 API url 是静态的,因为当它更改时(例如 wp-json/wp/v3)我的应用程序会中断,并且每次更改都需要更新应用程序。 (2认同)