21. april 2004 - 16:17Der 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 !
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.
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?
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.
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.
#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 ?
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.
#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]
Synes godt om
Ny brugerNybegynder
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.