Witam szanowne grono,
Mam taką kwestię do rozwiązania, które nie daje mi spokoju. Wiem, jak to zrobić nie elegancko w kontrolerze aplikacji z wykorzystaniem filtra, ale wiem również, że mógłbym tę kwestię rozwiązać poprzez trasy rutingu. Otóż chciałbym móc w trasach rutingu wykryć, że żądanie przyszło z domeny abc.pl i przekierować użytkownika na to samo żądanie spod domeny abc.com dodając jedynie wersję językową czyli abc.com/pl.
constraints :host => /abc.pl/ do
match ‘/’ => redirect(‘http://abc.com/pl/’)
end
Jednak to rozwiązuje mi jedynie przypadek, gdy ktoś wejdzie z samej domeny: abc.pl. Jak rozwiązać przypadek, gdyż ktoś przekaże jakieś parametry, np:
abc.pl/sign-in
abc.pl/offer/1
(…)
cokolwiek innnego
by przekierowało na abc.com/pl/*
I jeszcze jedna zagadka: jak obsłużyć wykrycie już innej wybranej wersji językowej: abc.pl/:language/(*) i obsłużyć poprzez trasy przekierowanie na właściwy adres
czyli:
abc.pl/en przekierować na abc.com/en
abc.pl/en/sign-in przekierować na abc.com/en/sign-in
abc.pl/en/offer/1 przekierować na abc.com/en/offer/1
I jaki kod HTTP takiemu stałemu przekierowaniu nadać?
Proszę o zasugerowanie jakiegoś eleganckiego fajnego rozwiązania, bo ja się poddaje. Długo szukałem w necie i nic sensownego nie znalazłem…