Nginx:无论 url 结构如何重定向

Nginx: redirect regardless of the url structure

我最近将一个子域移动到我的主域,但我也更改了 url 结构。

以前我有像 http://sub.domain.com/companies/my-company-id/year/2012/charts

这样的页面

移动到主域时,我删除了所有复杂的 urls 以突出获取: http://www.domain.com/companies/my-company

我目前有以下规则: rewrite ^/companies/(.*)$ http://www.domain.com/companies/ permanent; 但是当有人访问像 http://sub.domain.com/companies/my-company/2012/charts 这样的页面时,他们会被重定向到 http://www,.domain.com/companies/my-company/2012/charts 并获得 404。

我喜欢强制重定向到 http://www,.domain.com/companies/my-company-id 而不管 my-company-id

后面是什么

目前参数 $1 在 /companies 之后有整个 URI,因此您将被重定向到原始路径。您应该只在 $1 中提取公司 ID。 使用这个:

rewrite ^/companies/(.*)/(.*)$ http://www.domain.com/companies/ permanent;

此处company-id之后的其余URI将在参数$2中可用,在重写条件中不需要。