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中可用,在重写条件中不需要。
我最近将一个子域移动到我的主域,但我也更改了 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中可用,在重写条件中不需要。