Skocz do zawartości

Ciągła pętla przekierowań - htaccess


sełowca

Rekomendowane odpowiedzi

Cześć,

 

Kombinowałem z tym problemem już trochę ale nie mogę znaleźć rozwiązania. Wszystkie reguły jakie wpiszę, zapisaniu i odświeżeniu strony (tak usuwałem cookie's) wywołują pętle przekierowań.

Chcę przekierować wszystko na adres: https://www.domena.com.pl   (domena przykładowa jak coś)

 

Aktualnie przekierowania są takie: 

https://domena.com.pl  -> https://www.domena.com.pl  ✓

https://domena.com.pl ->  https://www.domena.com.pl  ✓

https://www.domena.com.pl  https://www.domena.com.pl  ✕

 

Brakuje tylko przekierowania z niezabezpieczonej strony z www.

 

Kod w .htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www.domena.com.pl$
RewriteRule ^(.*) https://www.domena.com.pl/$1 [QSA,L,R=301]

RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico)

RewriteRule ^(.*)$ index.php?/$1 [L]

 

Co tutaj przeszkadza i jak można to rozwiązać? Bardzo proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Twój fragment kodu:
 

RewriteCond %{HTTP_HOST} ^www.domena.com.pl$
RewriteRule ^(.*) https://www.domena.com.pl/$1 [QSA,L,R=301]

warunkiem wykonania przekierowania jest host www.domena.com.pl a przekierowujemy na https://www.domena.com.pl/... - tutaj występuję pętla - warunek "RewriteCond" będzie spełniony za każdym kolejnym wykonaniem przekierowania.

Kod, który powinien wykonać wszystko co potrzebujesz (zapoznaj się z komentarzami rozpoczynającymi się od #):
 

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#dodałem warunek dla httpsa - musi on być wyżej, żeby nie występowało podwójne przekierowanie w przypadku bez httpsa i bez www
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://www.domena.com.pl/$1 [QSA,L,R=301]

#tutaj wprowadziłem wykrzyknik, który oznacza zaprzeczenie - w związku z tym przekierowanie zostanie wykonane dla wszystkiego co nie jest w hoscie www.domena.com.pl - więc jeśli masz jakieś inne domeny / subdomeny podpięte do tego katalogu też zostaną przekierowane!!!
RewriteCond %{HTTP_HOST} !^www\.domena\.com\.pl
RewriteRule ^(.*) https://www.domena.com.pl/$1 [QSA,L,R=301]

#mam wątpliwości co do poniższej linii - wg powinna ona powodować błąd 500, ale nie sprawdzałem z pamięci mówię - wydaje mi się że powinna ona zostac poprzedzona warunkami, które są niżej, ale do tych warunków jest inne przekierowanie z index.php na dole - w kazdym razie jak coś nie działa to do usunięcia
RewriteRule ^$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico)

RewriteRule ^(.*)$ index.php?/$1 [L]

 

pozycjonowanie-stron.png

Pozycjonowanie stron internetowych - https://www.eactive.pl/pozycjonowanie-stron/

Odnośnik do komentarza
Udostępnij na innych stronach

A wyczyściłeś cache przeglądarki ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

https://pomoc.home.pl/baza-wiedzy/przekierowanie-301-w-pliku-htaccess

Do zadań

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Z poziomu skryptu w php także da się wykonywać przekierowania  - i w ten sposób także można wywołać pętlę - należy szukać w plikach php:

header("Location:

czy jest to jakiś popularny CMS? Daj znać co to, może uda się coś więcej podpowiedzieć :)

pozycjonowanie-stron.png

Pozycjonowanie stron internetowych - https://www.eactive.pl/pozycjonowanie-stron/

Odnośnik do komentarza
Udostępnij na innych stronach

5 minut temu, EACTIVE napisał:

Z poziomu skryptu w php także da się wykonywać przekierowania  - i w ten sposób także można wywołać pętlę - należy szukać w plikach php:


header("Location:

czy jest to jakiś popularny CMS? Daj znać co to, może uda się coś więcej podpowiedzieć :)

 

Dzięki za dalszą pomoc :) . (Niestety) To autorski CMS. Nie mam pojęcia co tu się "odwala" bo wszystko co zrobię innego poza tym co jest aktualnie w .htaccess to wywala pętle przekierowań...

Odnośnik do komentarza
Udostępnij na innych stronach

53 minuty temu, sełowca napisał:

Nie mam pojęcia co tu się "odwala"

Użyj jakiegoś klienta online do wykonania żądań HTTP "Send HTTP Requests Online "  i zobacz co słychać

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

48 minut temu, Mion napisał:

Użyj jakiegoś klienta online do wykonania żądań HTTP "Send HTTP Requests Online "  i zobacz co słychać

Nie wiem czy to o to chodziło, ale na stronie reqbin.com podałem nazwę domeny po wykonaniu wyświetla się tylko 301 Moved permamently. Chyba, że coś źle zrobiłem  : / 

 

Odnośnik do komentarza
Udostępnij na innych stronach

301 Moved permamentl - oznacza, że jest przekierowanie, ale jeszcze będzie informacja na jaki dokładnie URL.
Następnie kasujesz przekierowanie z .htacces i sprawdzasz czy nadal jest.
Jeśli nadal jest przekierowanie, to znaczy, że akcja dzieje się w PHP. Wtedy musisz szukać w kodzie PHP.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A poprzednie nie widziałeś, że edytowałem to raz. Dwa zgłaszają to inni użytkownicy forum. Trzy w regulaminie pisze, żeby tak nie cytować  bo to zaburza całość.  Chcesz do czegoś konkretnie odnieś się - cytuj nie w całości a wyrywkowo. 

 

 Regulamin który zaakceptowałeś :

 

- Naganne jest cytowanie całego tekstu bądź jego długich fragmentów aby dopisać swoją treść. Aby skrócić treść cytatu używaj [...]. 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności