【发布时间】:2011-04-19 16:13:29
【问题描述】:
我们刚搬到一个新网站,并希望在必要时重定向旧链接 - 但是,有些仍然有效。例如,
/holidays/sku.html
仍然有效,而
/holidays/christmas/
不再有效。我希望能够允许该站点尝试提供一个页面,并且当达到 404 时,尝试通过一系列正则表达式重定向传递它,这可能看起来像:
location ~* /holidays/(.*)+$ { set $args ""; rewrite ^ /holidays.html?r=1 redirect; }
我使用 ~* 位置指令而不是直接重写,因为我们正在从基于 Windows 的 ASPX 站点迁移到 Magento,而 php-fpm 在 nginx 后面,所以我们突然不得不担心区分大小写。
如果不使用带有某种@handler 的嵌套位置指令(nginx 文档积极劝阻),让 nginx 先尝试服务页面,然后在失败时通过重定向传递它的最佳方法是什么?
谢谢!
【问题讨论】:
标签: nginx http-status-code-404