Avatar billede dragonbook Nybegynder
21. april 2004 - 16:17 Der er 20 kommentarer og
1 løsning

.htaccess fejl !

Hej jeg vil gerne havde at gæsterne på min side ikke møder standart fejl 404 siden.
Derfor har jeg lavet min egen (filen er større end 600 byte).
i min .htaccess fil har jeg skrevet følgende:

ErrorDocument 404 /404.php

Nå jeg så skriver et forkert link på min webpage, kommer min egen fejl 404 side op.
MEN hvis det forkerte link indeholder endelsen .php bliver man igen sendt til den normale fejl 404 side !

Nogen der har en forklaring på det ?
Avatar billede htm Nybegynder
21. april 2004 - 17:38 #1
Har du installeret php som modul til apache eller CGI? Hvis det er CGI er det givetvis derfor.

Du kan tjekke det ved at lave en phpinfo(); og tjekke Server API
Avatar billede dragonbook Nybegynder
21. april 2004 - 17:42 #2
Jeg benytter B-one og er ikke super god til .htaccess
så hvis du kan forklare det lidt nærmere vil det sikkert hjælpe
Avatar billede dragonbook Nybegynder
21. april 2004 - 17:43 #3
serveren benytter apache
Avatar billede htm Nybegynder
21. april 2004 - 18:02 #4
b-one kører med php installeret som CGI, dvs. ikke direkte integreret med apache, og derfor er det det der går galt, at den ikke viser din fejlside med .php endelser.

Der er desværre ikke noget du kan gøre.

du kan tjekke selv med at kigge på Server API parameteren i listen phpinfo()

lav et php-dokument og kald den info.php med følgende indhold

<?php
phpinfo();
?>

opload den så til dit webhotel, og tjek den., Øverst står der Server API, den står sikkert til CGI.
Avatar billede sukos Juniormester
23. april 2004 - 15:51 #5
Hvis du ikke har nogen speciel grund til at bruge PHP, kan du vel blot lave et html dokument.
Og ellers evt. prøve med et shtml dokument, og i dette include et PHP script?
Avatar billede Peter Praktikant
06. juni 2004 - 09:07 #6
Jeg har de helt samme problemer, bruger også b-one.
Det sjove er bare, at det er kun hvis det er en php-fil i roden man forsøger at tilgå, hvis man forsøger at tilgå domæne.dk/dfs/dsfa.php får jeg i hvert tilfælde en rigtig fejlbesked, altså min egen.
Jeg har opgivet, troede først det havde noget med htaccess tilen at gøre, der står en masse der bliver ignoreret, kunne dog ikke se php-filer skulle kunne gå under dette.
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
Jeg lever med at mine egne 404-fejlbeskeder bliver vist for alle andre sider end php-sider i roden.
Avatar billede dragonbook Nybegynder
06. juni 2004 - 14:29 #7
Har faktisk fundet en løsning.

Hvis du indsætter følgende kode i .htaccess filen virker det fint:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /404.php

Tror ikke B-one har særligt godt styr på det !
Syndes også deres server går ned i 1-2 min tit.
Avatar billede Peter Praktikant
06. juni 2004 - 14:33 #8
Du må meget gerne lige forklare hvad de linjer gør, tjekker de bare om filen eksisterer, hvis den ikke gør videresender den så til 404.php?
Avatar billede dragonbook Nybegynder
06. juni 2004 - 15:16 #9
Nu er jeg ikke en ørn til det her og har ikke skrevet scriptet selv.

men du har ganske ret den tjekker om filen findes, og hvis den ikke gør, åbnes 404.php

Fungerer fint for mig ! virker dog kun ved 404 fejl.
Avatar billede Peter Praktikant
06. juni 2004 - 15:18 #10
Men fanger den så ikke alle filer der ikke findes? I det tilfælde vil det jo gå en smule galt mht. søgemaskiner, de vil jo ikke kunne se at siden ikke eksisterer?
Så skulle man omskrive scriptet så den kun tager php-filer og viderestiller til 404redirect.php som kaster en 404 og derved redirecter til den rigtige 404.php.
Dette vil være noget rigtigt fusk.
Jeg ved ikke rigtigt om jeg vil bruge løsningen, vil lige studere den lidt nærmere.
Avatar billede htm Nybegynder
06. juni 2004 - 15:20 #11
Kan så lige supplere:

#Sætter Rewrite maskinen igang
RewriteEngine On
#Hvis det forespurgte ikke er en fil
RewriteCond %{REQUEST_FILENAME} !-f
#Hvis det forespurgte ikke er et bibliotek
RewriteCond %{REQUEST_FILENAME} !-d
#Så sender jeg alt videre til /404.php
RewriteRule (.*) /404.php

Og måske det var på tide at få lukket spørgsmålet ?
Avatar billede htm Nybegynder
06. juni 2004 - 15:24 #12
petter78>> Du kan selv sørge for at den sender en 404-header med. så den vil blive opfattet som en siden kan ikke vises:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /404.php [R=404]

Se endvidere: http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteCond
Avatar billede htm Nybegynder
06. juni 2004 - 15:28 #13
Og så er det selvfølgelig RewriteRule du skal kigge nærmere på, for min lille tilføjelse: http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteRule
Avatar billede dragonbook Nybegynder
06. juni 2004 - 15:32 #14
Ved tilførsel af [R=404] går serveren ned !

i hvert fald ved mig!
Avatar billede htm Nybegynder
06. juni 2004 - 15:41 #15
Sry :-)

Fik ikke læst ordentlig i dokumentationen - du kan kun bruge R-flaget til response codes fra 300 til 400.
Avatar billede dragonbook Nybegynder
06. juni 2004 - 15:42 #16
Okay ville ellers være smart.
Avatar billede htm Nybegynder
06. juni 2004 - 15:46 #17
Men I kan bruge php i stedet.

Smid dette i toppen af jeres php-dokument:

<?php
header("HTTP/1.0 404 Not Found");
?>

Det skulle gerne sørge for at sende en 404 not found header.
Avatar billede dragonbook Nybegynder
06. juni 2004 - 16:06 #18
htm>> Tak for det

Gider du lige at ligge et svar så jeg kan lukke denne!
Avatar billede htm Nybegynder
06. juni 2004 - 16:09 #19
ok det gør jeg :o)
Avatar billede Peter Praktikant
08. juni 2004 - 16:46 #20
Af en eller anden grund får jeg ikke emails ved alle spørgsmål, meget irreterende.
Men i hvert tilfælde havde jeg ikke tænkt helt så langt da jeg skrev mit indlæg, jeg har i mellemtiden brugt php til at sende en 404 header ud når jeg får en .php. Jeg bruger ligeledes en rewrite nu:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} [^/]+\.[pP][hH][pP]$
RewriteRule .+ /index.php?page=404 [L]
Har længere oppe en Error 404, så den fanger alt andet end .php i roden, derfor kigger jeg kun på dem. Kunne egentligt fjerne den midterste cond, måske gør jeg lige det og flytter det istedet ned i rule.
Avatar billede Peter Praktikant
08. juni 2004 - 16:51 #21
#Fanger php-filer i roden som ikke eksisterer og sender dem til 404
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+\.php$ /index.php?page=404 [NC,L]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester