Nginx - przekierowanie w zależności od geolokalizacji

Szymoon202 | 2020-07-13 17:58:25 UTC | #1

Cześć,
jak w nginxie i czy w ogóle się da przekierować kogoś na dany katalog w zależności od geolokalizacji? Mam stronę np. po polsku i po angielsku, chciałbym więc żeby Nginx przekierowywał osoby z polski na uri /pl/ a osoby spoza polski na uri /en/ (oczywiście to przykład). Znalazłem coś w Google na jakimś forum ale to jedynie pozwalało na jedno przekierowanie (przykładowo gdy mamy dwa języki) a jeżeli mam stronę w 3 językach to już nie bardzo. Ktoś coś wie? A może coś z htaccess?


Nieznajomy11 | 2020-07-13 20:23:28 UTC | #2

[quote=”Szymoon202, post:1, topic:15392”]
A może coś z htaccess?
[/quote]

Nginx nie wspiera htaccess.

[quote=”Szymoon202, post:1, topic:15392”]
Znalazłem coś w Google na jakimś forum ale to jedynie pozwalało na jedno przekierowanie (przykładowo gdy mamy dwa języki) a jeżeli mam stronę w 3 językach to już nie bardzo. Ktoś coś wie?
[/quote]

Jeśli podzielisz się dotychczasowo testowanym rozwiązaniem, prawdopodobnie innym będzie łatwiej ci pomóc.


undefined | 2020-07-14 09:23:29 UTC | #3

Można coś takiego wykonać w skrypcie php który znajduje się w katalogu głównym, skrypt taki sprawdzał by lokalizację po adresie ip i przekierowywał na folder dostępny z bazy, jeśli takowego folderu nie ma przenosi na domyślny folder w tym przypadku może być to Angielski.

Dziękuję dobranoc,

PS: skrypt taki mogę wykonać dzisiaj pod wieczór bo obecnie gdzieś się śpieszę


riko.dev | 2020-07-18 17:31:15 UTC | #4

Wymagany moduł: http://nginx.org/en/docs/http/ngxhttpmap_module.html

http { 
...
map $geoip_country_code $new_home_uri { 
  default /en/; 
  uk /en/; 
  us /en/; 
  de /de/; 
  ru /ru/; 
} 
...
} 
server { 

.... 

location = / { 
rewrite ^ $new_home_uri break; 
} 

location = /de { 
# default home for german visitors 
... 
} 

location = /ru { 
# sekcja dla użytkowników z rosji...
... 
} 

location = /en { 
# sekcja dla anglików i ameryczki..
... 
} 

}

Oczywiście kropki pomiń — to przykład. :grin:


system | 2020-08-19 17:31:16 UTC | #5

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.