[PHP]Problem z htaccess Wersje językowe i Nice URL NoSpor-a |
[PHP]Problem z htaccess Wersje językowe i Nice URL NoSpor-a |
14.08.2018, 14:14:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 11.08.2012 Ostrzeżenie: (0%) |
Hej mam problem z przekierowaniem kod 1 używałem do tej pory wszelkie redirect tworzą loop detected kiedy headerem przekierowuje na wersję językową choć link fizycznie istnieje. Chcę zrobić to po stronie htaccess i tutaj działa 2 kod wykrywa wersję językową i przekierowuje. Problem jest kiedy chcę mieć funkcjonalność NICE URL i nie działa. Nie cierpię htaccess testowałem wiele rozwiązań i nic nie działa. Mam NICE URL Nospor-a i jak wrzucam https://domena.pl/pl/link,8.html to wszystko działa więc tutaj jest przygotowane. Chcę automatycznie przekierować użytkownika na konkretną wersję językową która bez parametrów wygląda tak https://domena.pl/pl/
Pozdrawiam mam taki oto kod htaccess RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php/$1 [L] i taki 2 wersje językowe RewriteCond %{HTTP:Accept-Language} ^en [NC] RewriteRule ^$ https://www.%{HTTP_HOST}/pl/ [L,R=301] RewriteCond %{HTTP:Accept-Language} ^de [NC] RewriteRule ^$ https://www.%{HTTP_HOST}/pl/ [L,R=301] RewriteCond %{HTTP:Accept-Language} ^nl [NC] RewriteRule ^$ https://www.%{HTTP_HOST}/pl/ [L,R=301] RewriteCond %{HTTP:Accept-Language} ^fr [NC] RewriteRule ^$ https://www.%{HTTP_HOST}/pl/ [L,R=301] RewriteCond %{HTTP:Accept-Language} ^pl [NC] RewriteRule ^$ https://www.%{HTTP_HOST}/pl/ [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(en|de|nl|fr|pl)/?$ index.php?/$1/ [L] Ten post edytował designez 14.08.2018, 14:18:26 |
|
|
14.08.2018, 15:33:09
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Kod ktory jest w moim przykladzie nice url nie obslugiwal jezykow bo to byl tylko przyklad by pokazac jak samodzilenie mozna zrobic nice url. Moj przyklad dzialal tylko dla paru przykladowych kombinacji url takie jak podane przez ciebie /link,8.html
Jak chcesz dodac teraz jezyk to nie masz juz grzebac w .htaccess - na tym polegal wlasnie przyklad ode mnie, ze .htaccess sluzyl tylko do ogolnego przekierowania a wszystko inno mialo byc robione w php. Tak wiec jezyki masz obsluzyc rowniez w php w przykladowej klasie NiceUrl -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.08.2018, 16:28:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 11.08.2012 Ostrzeżenie: (0%) |
Ja przerobiłem na kilka kombinacji dla artykułów, podstron czy czegokolwiek jak np ogłoszenia pliki ładuje tak
domena.pl/nice-url,p,78.html Gdzie P jest typem (modułem) w tym przypadku podstrona zrobiłem też dla kategorii i wersji językowych kategorie + wersje językowe problem jest taki że kiedy odpalam stronę domena.pl/pl/nice-url,p,78.html działa wszystko fajnie ale kiedy chcę przekierować HEADEREM na dokładnie taki link pojawia się problem. Chcę aby automatycznie po wejściu strona przekierowała się na odpowiednią wersję językową. Parametr wersji językowej jest zapisywany i tutaj jest dlatego myślałem że problem leży po stronie htaccess ok problem mam z przekierowaniem na konkretną wersję językową i mimo że link jest prawidłowy to pojawia mi się LOOP DETECTED Poniższym sprawdzam wersję językową i przekierowuje w postaci domena.pl/pl/ |
|
|
14.08.2018, 16:49:50
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A po tym jak przekierujesz na domena.pl/pl/, to co się dzieje? Nie sprawdzasz znów zmiennej $_SERVER['HTTP_ACCEPT_LANGUAGE'] i przekierowujesz ponownie?
Przekierowanie powinieneś wykonać kiedy REQUEST_URI jest pusty, albo w adresie pojawił się język, który nie jest obsługiwany. -------------------- |
|
|
14.08.2018, 17:27:00
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 11.08.2012 Ostrzeżenie: (0%) |
Tak to też zrobiłem na razie chcę przebrnąć przez etap choć z domeny na domena.pl/pl/ potem będę się zastanawiał dalej.
Mam taki oto błąd ERR_TOO_MANY_REDIRECTS. Próbowałem różne wersje header-a /pl/ domena.pl/pl/ to samo
|
|
|
14.08.2018, 22:20:50
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Tak to też zrobiłem na razie chcę przebrnąć przez etap choć z domeny na domena.pl/pl/ potem będę się zastanawiał dalej. Mam taki oto błąd ERR_TOO_MANY_REDIRECTS. Próbowałem różne wersje header-a /pl/ domena.pl/pl/ to samo Co takiego zrobiłeś? W kodzie widać warunek oparty o https://domena.pl (to zawsze zwraca getBaseUrl) oraz Config::$siteURL. Jeśli więc są takie same, to zawsze wykonujesz switch/case. Sugerowałem Ci wyżej, abyś przekierowanie robił tylko kiedy brak wersji językowej. -------------------- |
|
|
17.08.2018, 08:26:48
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 11.08.2012 Ostrzeżenie: (0%) |
Ehh faktycznie mam 2 funkcje do sprawdzania URL i wykorzystałem tą złą. Warunek zawsze spełniony czeski błąd
|
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 12:55 |