WordPress后台自定义页面如何通过Apache的.htaccess重定向到前端URL?
用.htaccess实现WordPress后台页面的短地址访问
你的问题核心是Redirect指令不支持匹配查询字符串,所以原来的规则完全无效。Apache的Redirect属于mod_alias模块,只会匹配URL的路径部分(也就是/wp-admin/admin.php),根本不会理会后面的?page=make_request参数,自然不会触发重定向。
根据你的需求,分两种场景给出解决方案,代码都要放在WordPress默认的# BEGIN WordPress规则块之前,否则会被WordPress的重写规则覆盖:
场景1:用短地址/request访问后台目标页面(内部重写,隐藏真实URL)
这应该是你真正需要的——用户访问www.URL.xx/request时,实际加载后台的wp-admin/admin.php?page=make_request页面,地址栏仍显示/request:
<IfModule mod_rewrite.c> RewriteEngine On # 匹配/request路径,内部转发到后台目标页面 RewriteRule ^request$ /wp-admin/admin.php?page=make_request [L] </IfModule>
场景2:将后台目标页面301重定向到短地址/request
如果是想让用户访问后台的wp-admin/admin.php?page=make_request时,自动跳转到/request(地址栏更新为短地址),用下面的规则:
<IfModule mod_rewrite.c> RewriteEngine On # 匹配查询字符串中的page=make_request RewriteCond %{QUERY_STRING} ^page=make_request$ # 匹配/wp-admin/admin.php路径,301跳转到/request,末尾的?清除原查询字符串 RewriteRule ^wp-admin/admin\.php$ /request? [L,R=301] </IfModule>
注意事项
- 确保Apache服务器已启用
mod_rewrite模块,否则规则不会生效。 - 测试前请清除浏览器缓存,避免旧的缓存规则干扰结果。
- 短地址
/request仍受WordPress后台权限控制,未登录用户访问会跳转到登录页面,不会绕过权限验证。
内容的提问来源于stack exchange,提问作者Ted Logan
相关产品推荐
相关产品推荐

