如何使用htaccess配置末尾为'thing'的域外访问链接重定向到上级目录
.htaccess 重定向配置规则
首先确保你的Apache环境已启用mod_rewrite模块,将以下配置添加到站点根目录的.htaccess文件中即可:
RewriteEngine On # 校验请求来源非本站域名 RewriteCond %{HTTP_REFERER} !^https?://(www\.)?你的实际域名\.com [NC] # 匹配路径末尾段为 thing,兼容有无尾部斜杠两种场景 RewriteRule ^(.*)/thing/?$ /$1/ [R=301,L]
规则说明
RewriteEngine On:开启Apache重写引擎,是所有重写规则生效的前提- 来源校验规则说明:
%{HTTP_REFERER}读取请求的来源地址- 规则仅匹配来源不是你自身站点域名的请求,
[NC]标识匹配时不区分大小写 - 如果你需要排除用户直接在地址栏输入路径访问的场景(仅拦截从其他站点跳转来的外部请求),可以额外新增一行规则:
RewriteCond %{HTTP_REFERER} !^$
- 路径匹配规则说明:
^(.*)/thing/?$正则会精准匹配所有路径末尾段为thing的请求,/?兼容带/和不带/的两种访问形式,(.*)会自动捕获thing前面的上级路径内容/$1/为重定向目标地址,$1对应前面捕获的上级路径值,直接跳转至上一级目录[R=301,L]表示使用301永久重定向,且命中该规则后不再执行后续的重写规则;如果是临时测试需求,可以将R=301改为R=302使用临时重定向
内容的提问来源于stack exchange,提问作者Razvan Marin
相关产品推荐
相关产品推荐

