![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam takie przedszkolne pytanie... Jeśli dana podstrona nie istnieje to przeglądarka standardowo wywala brzydką stronę 404. Wyłapuję wtedy takie przypadki i przekierowuję internautę na specjalnie przygotowaną stronę błędu 404.html. Z tym że wtedy kod odpowiedzi http = 200, bo teoretycznie wszystko jest ok. Czy takie rozwiązanie jest poprawne? Przekierowanie robię za pomocą Pozdrawiam, Ł. Ten post edytował lukash82 4.11.2015, 12:02:25 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie jest. Przed przekierowaniem musisz wyrzucić status 404.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
header("Location: 404.html", true, 404);
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Najprościej zrobić to przez .htaccess. Masz wtedy kkod 404 i customizowalną stronę błędu
Kod ErrorDocument 404 /404.html
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Muszę odgrzać kotleta... Próbuję już na milion sposobów i dalej nie mogę sobie z tym 404 poradzić. Mam taką konstrukcję (w mega uproszczeniu bez zapytań, etc.):
No i teraz jeśli podstrona nie istnieje to wykonuję tak jak napisał @Pyton_000 czyli: header("Location: 404.html",TRUE,404); Efekt jest taki, że np. mamy adres domena.pl/kontakt, zmieniając to na domena.pl/kontakttttt otrzymuję w firebugu status 404, ale przekierowanie nie następuje. Strona zostaje na adresie domena.pl/kontakttttt. A że takiej strony fizycznie nie ma to mam pustą białą stronę... Pytanie, jak zmusić to ustrojstwo do przekierowania na stronę 404.html. No bo tak to chyba powinno wyglądać. Jednak nawet jeśli się już uda to zrobić to tak na chłopski rozum, 404.html istnieje więc znów wtedy dostanę status 200. Już nie ogarniam tego...:/ Próbowałem też najprostszej metody podanej w milionie miejsc w necie, czyli w htaccess "error document 404", ale przy takiej powyższej konstrukcji if - else to nie działa. Jeśli ktoś może mi pomóc to ogarnąć to będę dźwięczny. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
To że ten plik istnieje to nie oznacza że dostaniesz 200, właśnie po to są te dodatkowe parametry.
plik 404.html musi być w odpowiedniej ścieżce. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Tak, tylko ten przypadek jest taki trochę specyficzny. Ale już sobie z tym poradziłem. Rozwiązanie poniżej, może się komuś przyda:
I wtedy nie ma przekierowania na podstronę domena.pl/404 tylko zostawiamy usera na stronie, gdzie coś sobie źle wpisał w adresie i może to poprawić. W treści strony ładujemy info o błędzie 404 z instrukcjami dla usera, a dla googlebotów mamy ładny status 404. W każdym bądź razie dzięki za zaangażowanie w rozwiązanie problemu. Pozdrawiam, Ł. Ten post edytował lukash82 14.12.2015, 13:50:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:08 |