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.