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

时间:2016-04-07 17:14:45

标签: nginx rewrite url-redirection

我最近将子域名移动到了我的主域名,但我也更改了网址结构。

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

当移动到主域时,我删除了所有复杂的URL到juts get: http://www.domain.com/companies/my-company

我目前有以下规则:  rewrite ^/companies/(.*)$ http://www.domain.com/companies/$1 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 个答案:

答案 0 :(得分:1)

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

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

此处公司ID之后的其余URI将在参数$ 2中可用,这在重写条件中是不需要的。