Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Przekierowanie jeżeli podstrona nie istnieje - 404
Forum PHP.pl > Forum > Przedszkole
kleszcz12
Witam, czy da się zrobić coś takiego:

Jeżeli użytkownik przejdzie na podstronę która nie istnieje, zostaje przekierowany na podaną stronę?
l0ud
Tak ale to zależy od konfiguracji serwera. Wiele hostingów pozwala na utworzenie własnych stron błędów, wtedy po prostu do takiej umieszczasz przekierowujący kod js (window.location.href = ), albo/i link do właściwej strony.
pyro
Cytat(l0ud @ 18.06.2008, 15:21:33 ) *
Tak ale to zależy od konfiguracji serwera. Wiele hostingów pozwala na utworzenie własnych stron błędów, wtedy po prostu do takiej umieszczasz przekierowujący kod js (window.location.href = ), albo/i link do właściwej strony.


.htaccess
Kod
ErrorDocument numer_bledu /strona_na_ktora_ma_byc_przekierowanie


nie prosciej l0ud?

przykład:

Kod
ErrorDocument 404 /strona_nie_istnieje.php
kleszcz12
A jak nie działa tzn. że nie da się zrobić na danym hostingu? [w tym przypadku masternet.pl]
l0ud
pyro, nie wszędzie jest apache tongue.gif

kleszcz12, spróbuj zrobić tak jak napisał pyro. Jeżeli nie zadziała skontaktuj się z supportem tego hostingu, czy to nie jest możliwe smile.gif
Kuba_Bzc
A ja troszke zbocze z tematu i zapytam czy jest mozliwosc aby user klikajacy z googla na jakas podstrone serwisu byl przenoszony za kazdym razem na strone glowna?

Z gory dziekuje za odpowiedz
revyag
Sprawdzaj HTTP_REFERER i jak zawiera google to redirect.
Kuba Bzc
hmmm mozna by bylo troszeczke jasniej bo jestem poczatkujaca osoba w tych sprawach smile.gif
Flaku
Chciał bym odświeżyć temat.

Jestem w trakcie robienia własnych stron błędów ale kiedy daje kod:

Kod
ErrorDocument 404 /system/error/error.php?e=404


w przeglądarce pojawia się wiadomość

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Kiedy dopisuję adres strony:

Kod
ErrorDocument 404 http://adresstrony.pl/system/error/error.php?e=404


wtedy wszystko działa jak należy ale ja bym wolał żeby to było zrobione bardziej uniwersalnie (bez edycji pliku po zmianie adresu).

Próbowałem też tak:

Kod
ErrorDocument 404 http://%{HTTP_HOST}/system/error/error.php?e=404


no ale to też niestety nie działa, nie pobiera adresu strony.

może ktoś ma jakiś pomysł jak mogę to zrobić ?

Z góry dziękuję za pomoc.
pyro
wydaje mi sie ze powinno byc tak:
Kod
ErrorDocument 404 system/error/error.php?e=404
Flaku
Trochę inny błąd ale bardzo podobny:

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
pyro
system/error/error.php?e=404

zobacz czy t sciezka napewno istnieje
Flaku
Na 100% istnieje.
l0ud
Jeżeli wywala błąd 500, to oznacza że podana ścieżka: system/error/error.php?e=404 jest niepoprawna. (musi być / na początku).

Problem w tym, że należy podać pełną ścieżkę od folderu w którym apache przechowuje strony. Niestety nie wiem jak to ma się przy virtualhostach sad.gif
pyro
Cytat(l0ud @ 25.06.2008, 10:40:32 ) *
Jeżeli wywala błąd 500, to oznacza że podana ścieżka: system/error/error.php?e=404 jest niepoprawna. (musi być / na początku).

Problem w tym, że należy podać pełną ścieżkę od folderu w którym apache przechowuje strony. Niestety nie wiem jak to ma się przy virtualhostach sad.gif



l0ud, raczej nie musi bo mam u siebie na komputerze plik .htacces z dyrektową ErrorDocument wskazująca na dokument bez ukośnika i jak wół działa wyśmienicie
Flaku
Właśnie w większości przypadków widziałem że było to bez "\" ale i z "\" działało, a u mnie a ni tak a siak. Jeżeli podam pełna ścieżkę tkj.

Kod
ErrorDocument 404 http://www.moja-domena.pl/system/error/error.php?e=404


wtedy wszystko działa, no ale jak już pisałem chciał bym aby to było bardziej funkcjonalne. Może ktoś wie czemu nie działa jeżeli zrobię tak:

Kod
ErrorDocument 404 http://%{HTTP_HOST}/system/error/error.php?e=404


niby daje przekierowanie ale w adresie strony pojawia się właśnie to co podałem a nie link z domeną.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.