最简洁可靠的下架链接跳转方案是直接用 return 301,如 location ^~ /share/ { return 301 /video-unavailable.html?$args; },匹配前缀且保留参数;少量链接可用 location = 精确匹配;提示页需返回200、添加 noindex,并验证配置与参数传递。

直接用 return 301 指令最简洁可靠,适用于将一批已下架的短视频分享链接统一跳转到一个提示页面(如 /video-unavailable.html),不依赖正则、不触发 rewrite 引擎,性能高且语义明确。
匹配特定路径前缀的分享链接
如果旧分享链接有统一路径特征(例如都以 /share/ 或 /v/ 开头),推荐在 location 块中配置:
- 用
location ^~ /share/精确匹配前缀,避免正则开销 - 返回固定提示页,保留原始 query 参数便于日志或埋点分析(可选)
- 确保该 location 位于其他更宽泛的 location(如
/)之前,防止被覆盖
示例配置:
server {listen 80;
server_name example.com;
location ^~ /share/ {
return 301 /video-unavailable.html?$args;
}
location / {
# 正常业务逻辑
}
}
按具体 URL 精确重定向多个下架链接
若只有少数几个确定已失效的分享链接(比如 /v/abc123、/s/xyz789),可逐条用 location = 精确匹配:
-
location = /v/abc123只匹配完全一致的请求路径,不带 query 参数也能命中 - 每个 location 单独写一行 return,清晰易维护
- 浏览器访问
/v/abc123?utm_source=wechat时,$args 会自动拼接到目标页
示例:
location = /v/abc123 {return 301 /video-unavailable.html?$args;
}
location = /s/xyz789 {
return 301 /video-unavailable.html?$args;
}
兼顾 SEO 和用户体验的提示页设计
重定向目标页(如 /video-unavailable.html)本身需满足两个关键点:
- 返回 HTTP 状态码 200,不是 301 或 404 —— 这是真正展示“内容已下架”的落地页
- 页面 HTML 中建议添加
<meta name="robots" content="noindex">,防止搜索引擎收录该提示页 - 可嵌入简短说明、返回首页按钮、或引导用户搜索其他内容,降低跳出率
验证与上线注意事项
配置完成后务必验证行为是否符合预期:
- 执行
nginx -t检查语法,再nginx -s reload生效 - 用
curl -I https://example.com/share/def456确认响应头含HTTP/1.1 301 Moved Permanently和正确Location - 测试带参数的链接(如
?ref=copy)是否完整传递到提示页 - 上线初期可用 302 临时跳转测试逻辑,确认无误后再改为 301


















