Jump to content
sełowca

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

Recommended Posts

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  ✓

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

http://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.

Share this post


Link to post
Share on other sites

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/

Share this post


Link to post
Share on other sites
Posted (edited)
1 godzinę temu, EACTIVE napisał:

Twój fragment kodu:....

 

Zrobiłem tak jak napisałeś ale wciąż ta pętla się pojawia...

Edited by MaxPan
nie cytuj w całości!

Share this post


Link to post
Share on other sites

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
- Full Stack Developer - :chatownik:

+ Ciekawy VLOG o Dubaju 

Share this post


Link to post
Share on other sites
Przed chwilą, Mion napisał:

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

 

Jasne, że tak. W innych przeglądarkach też sprawdzałem.

Share this post


Link to post
Share on other sites
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
- Full Stack Developer - :chatownik:

+ Ciekawy VLOG o Dubaju 

Share this post


Link to post
Share on other sites
Posted (edited)

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ć :)

Edited by EACTIVE

pozycjonowanie-stron.png

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

Share this post


Link to post
Share on other sites
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ń...

Share this post


Link to post
Share on other sites
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
- Full Stack Developer - :chatownik:

+ Ciekawy VLOG o Dubaju 

Share this post


Link to post
Share on other sites
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  : / 

 

Share this post


Link to post
Share on other sites

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
- Full Stack Developer - :chatownik:

+ Ciekawy VLOG o Dubaju 

Share this post


Link to post
Share on other sites
Posted (edited)
2 godziny temu, Mion napisał:

301 Moved permamentl -....

 

Na adres https://www.domena.com.pl czyli na tą na którą powinno być wszystko przekierowane. Poszperam gdzieś w PHP jeśli tak.

Edited by MaxPan
nie cytuj w całości!

Share this post


Link to post
Share on other sites

Mogłeś by przestać cytować w całości posty na jakie odpowiadasz dodatkowo tuż pod tym postem?


re287am9.jpg

 

Share this post


Link to post
Share on other sites

Ostatnia odpowiedź to faktycznie a tak poza tym to co Ci to przeszkadza? Przynajmniej wiadomo do czego się odnoszę i łatwiej później ogarnąć temat.

  • Haha 1

Share this post


Link to post
Share on other sites

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 [...]. 

 

  • Thanks 1

re287am9.jpg

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use Privacy Policy