You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置WordPress页面仅允许从指定URL访问

用.htaccess实现指定来源访问限制(适配WordPress/Elementor)

核心思路

通过校验HTTP请求头的Referer字段,判断访客是否从指定页面跳转而来,不符合条件则直接重定向到目标页面。

具体.htaccess代码

把这段代码放在WordPress默认规则(# BEGIN WordPress标记)之前——因为.htaccess规则按顺序执行,放在前面才能优先生效:

# 限制/secret-page仅允许从/go-to-secret跳转访问
RewriteEngine On

# 排除WordPress后台和Elementor编辑器(避免编辑页面时被拦截)
RewriteCond %{REQUEST_URI} !^/wp-admin/?$ [NC]
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/elementor/?$ [NC]

# 检查来源不是指定跳转页,且当前访问的是秘密页面
RewriteCond %{HTTP_REFERER} !^https://website.com/go-to-secret/?$ [NC]
RewriteCond %{REQUEST_URI} ^/secret-page/?$ [NC]

# 不符合条件则重定向到/redirect
RewriteRule ^ /redirect [R=302,L]

代码说明

  • RewriteEngine On:确保URL重写功能开启(WordPress通常已开启,重复添加无影响)
  • 前两个RewriteCond:排除后台和Elementor插件路径,避免管理员编辑页面时被拦截
  • %{HTTP_REFERER} !^https://website.com/go-to-secret/?$:匹配来源不是指定跳转页的请求,!表示否定,[NC]不区分大小写,末尾/?兼容带/不带斜杠的访问
  • %{REQUEST_URI} ^/secret-page/?$:匹配当前访问的是秘密页面
  • RewriteRule ^ /redirect [R=302,L]:触发重定向,R=302是临时重定向(测试阶段用这个,确认没问题后可改成R=301永久重定向),L表示停止执行后续规则

注意事项

  1. Referer字段的局限性:部分浏览器、隐私插件会屏蔽Referer头,导致规则失效。如果需要更可靠的验证,可以结合Cookie机制:在/go-to-secret页面加一段PHP代码设置Cookie,再在.htaccess里检查Cookie是否存在(适合有一定技术基础的用户)。
  2. 缓存问题:测试时建议用浏览器隐私模式,避免旧缓存干扰结果。
  3. 规则顺序问题:必须把这段代码放在# BEGIN WordPress之前,否则会被WordPress自带的重写规则覆盖。

内容的提问来源于stack exchange,提问作者Ruan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:01:07