Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [apache] błąd 404 w mod_rewrite
Forum PHP.pl > Forum > Przedszkole
Dynuel
Chciałbym zrobić tak ze jeżeli ktoś odwoła się do pliku index.php

www.domena.com/index.php

to żeby wywaliło błąd 404

mam takie strony błędów
Kod
ErrorDocument 404 /404.php

oczywiście mógłbym zrobić to tak:
Kod
RewriteRule ^index\.php$ /404.php [L]

ale sprawi to że tylko zostanie wyświetlona strona błędu, ale wysłany nagłówek nadal będzie "HTTP/1.x 200 OK", a ja chciałbym zeby po prostu został wysłany nagłówek 404, a dopiero w związku z tym została wyświetlona domyślna strona błędów
dadexix
w 404.php
Kod
header("HTTP/1.0 404 Not Found");
na niektórych sewerach może nie działać właściwie jak nie dodasz
Kod
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // data w przeszłości
Dynuel
Cytat(dadexix @ 9.01.2008, 15:01:42 ) *
w 404.php
Kod
header("HTTP/1.0 404 Not Found");
na niektórych sewerach może nie działać właściwie jak nie dodasz
Kod
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // data w przeszłości


tak wiem o tym sam założyłem tamten temat, lecz tutaj nie rozumiemy sie troche, mnie chodzi zupełnie o co innego, podejście od innej strony

ja nie chce aby po wpisaniu www.domena.com/index.php wyświetliło użytkownikowi tylko treść błędu z pliku 404.php, a status strony będzie nadal "HTTP/1.x 200 OK", ponieważ strona www.domena.com/index.php istnieje tylko ze wyświetla pod nią plik 404.php, użytkownik zobaczy błąd i ok, ale roboty i przeglądarki będą wiedziały ze strona istnieje

ja chcę aby po wpisaniu adresu www.domena.com/index.php wywaliło status 404 Not Found, tak ze roboty/przeglądarki będą wiedziały ze strony nie ma, i dopiero w związku z tym zostanie wyświetlona treść pliku 404.php
dadexix
jeśli strona jest... to server WWW wyśle headera 200 - ok a jak dasz header 404 not-found to będzie to samo jak by wysłało automatycznie...

Jaka różnica czy Ty powiesz serverowi żeby wysłał headera o tym że strony nie ma czy server zrobi to automatycznie...? chyba żadna...


drugie wyjście...
Kod
RewriteRule ^index\.php$ /jksdflhkjlsdhfkjdshkjg_bla_bla_strona_ktorej_nie_ma.rozszerzenie_dziwne [L]
wtedy server zachowa się tak samo jak by ktoś wpisał adres /jksdflhkjlsdhfkjdshkjg_bla_bla_strona_ktorej_nie_ma.rozszerzenie_dziwne... jeśli tej strony nie będzie... pokaże headera że strony nie ma oraz wywali deflautowego errora(czyli 404.php)
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.