如何禁用WordPress前端路由,仅保留JSON API与后台管理界面?
实现WordPress无头CMS的全站重定向方案(除API和后台)
需求说明
- 访问主域名
wordpress-example.com或任意非API、非后台子路由时,自动重定向到my-api-example.com - 访问
/wp-json/开头的API路由(如/wp-json/wp/v2/posts、/wp-json/wp/v2/categories)时,正常返回API响应 - 访问
/wp-admin.php时,正常打开WordPress后台管理界面
可行解决方案:修改.htaccess文件
直接调整WordPress根目录下的.htaccess文件,添加重定向规则并排除指定路径,是最直接高效的方式,具体配置如下:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On # 排除wp-admin.php和wp-json路径 RewriteCond %{REQUEST_URI} !^/wp-admin\.php$ RewriteCond %{REQUEST_URI} !^/wp-json/ # 重定向其他所有请求到自定义前端 RewriteRule ^(.*)$ https://my-api-example.com/$1 [R=302,L] # 保留WordPress原有重写规则 RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
规则解释
- 排除规则:
!^/wp-admin\.php$:匹配不是/wp-admin.php的请求!^/wp-json/:匹配不是以/wp-json/开头的请求
- 重定向规则:将符合排除条件的所有请求,以302临时重定向到自定义前端域名;若需保留原请求路径后缀则保留
/$1,不需要则删除 - 原有规则保留:维持WordPress默认重写逻辑,确保API和后台功能正常运行
注意事项
- 若需对SEO更友好的永久重定向,可将
R=302改为R=301 - 修改
.htaccess前请做好备份,避免配置错误导致网站异常 - 确保服务器开启
mod_rewrite模块(Apache环境默认开启,Nginx环境需通过location规则实现类似逻辑)
方案1补充说明
目前没有官方或主流插件能直接完全禁用WordPress前端UI,部分插件仅能隐藏特定页面,无法实现全站重定向需求,因此修改.htaccess是更可靠的方案
内容的提问来源于stack exchange,提问作者shershen
相关产品推荐
相关产品推荐

