2016-04-07 5 views
0

Ich habe vor kurzem eine Subdomain in meine Hauptdomäne verschoben, aber ich habe auch die URL-Struktur geändert.Nginx: Umleitung unabhängig von der URL-Struktur

Vorher hatte ich Seiten wie http://sub.domain.com/companies/my-company-id/year/2012/charts

Wenn auf die Hauptdomain zu bewegen, ich all die komplizierten URLs entfernt juts erhalten: http://www.domain.com/companies/my-company

ich zur Zeit die folgende Regel haben: rewrite ^/companies/(.*)$ http://www.domain.com/companies/$1 permanent; aber, wenn jemand gehen auf einer Seite wie http://sub.domain.com/companies/my-company/2012/charts erhalten sie eine Umleitung zu http://www,.domain.com/companies/my-company/2012/charts und erhalten eine 404.

Ich erzwinge gerne eine Umleitung auf http://www,.domain.com/companies/my-company-id unabhängig davon, was afte ist r die my-firma-id

Antwort

1

Derzeit hat der Parameter $ 1 den gesamten URI nach/companies, so dass Sie auf den ursprünglichen Pfad umgeleitet werden. Sie sollten die Firmen-ID nur in $ 1 extrahieren. verwenden:

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

Hier ist der Rest des URI nach Firmennummer wird im Parameter $ 2, verfügbar sein, die nicht in dem Rewrite-Zustand benötigt wird.

+0

Ich habe diese Antwort früher akzeptiert, aber tatsächlich, wenn ich http://sub.domain.com/companies/company-id treffe, passiert nichts. – bl0b

+0

Legen Sie 2 Rewrite-Regeln: 'rewrite ^/companies /(.*)/(.*)$ http://www.domain.com/companies/$1 permanent; schreibe ^/companies /(.*)/$ http://www.domain.com/companies/$1 permanent; 'um beide Bedingungen zu behandeln. Die erste Rewrite-Regel behandelt URLs ähnlich http://sub.domain.com/companies/my-company-id/year/2012/charts und die zweite Regel behandelt die Umleitung für sub.domain.com/companies/company- Ich würde/ – nidhi

Verwandte Themen