Permalänk
Medlem

hämta sida till 404 sida

Jag har gjort en egen 404 sida som funkar om man skriver in fel adress när man är på mina domäner på servern, men hur gör man så att man ser den adress man försökte skriva in. Säg att jag skrivit www.google.se/finnsinte

Då vill jag att 404 sidan ska säga www.google.se/finnsinte hittades inte

Jag har försökt med http referer men då säger den att den kommer från själva 404 sidan.

Använder wamp 2

Permalänk
Inaktiv

htaccess med ErrorDocument.

Permalänk
Medlem
Skrivet av anon150287:

htaccess med ErrorDocument.

jo tack jag vet hur jag skriver htaccess men jag har problem att skriva ut vilken sida som inte kan visas.

Permalänk
Testpilot

$_SERVER['REQUEST_URI'] använder jag, den borde ge rätt värde på adressen. Testa annars att skriva ut hela server-variabeln och se om du kan hitta nått som passar.

print_r($_SERVER);

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Medlem
Skrivet av hunden:

$_SERVER['REQUEST_URI'] använder jag, den borde ge rätt värde på adressen. Testa annars att skriva ut hela server-variabeln och se om du kan hitta nått som passar.

print_r($_SERVER);

Den säger fortfarande att den kommer från själva 404 sidan, även när jag skriver ut hela server-variabeln, är det något jag måste ändra i php-inställningar på servern?

Permalänk
Medlem

Skicka med filnamnet i htaccess-filen.
typ /404.php?error=adressen

Visa signatur

Utvecklare (Technical Director) / Delägare - Björnmamman

Permalänk
Medlem
Skrivet av Madsoul:

Skicka med filnamnet i htaccess-filen.
typ /404.php?error=adressen

Okej hur skulle jag få in det i mitt exempel nedan?

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php ErrorDocument 403 http://www.server.se/403/403.html ErrorDocument 404 http://www.server.se/404/notfound.php ErrorDocument 500 http://server.se/500/500.html php_value upload_max_filesize 10M php_value post_max_size 10M

Permalänk
Medlem

Kanske nåt sånt här. Är inte helt säker

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?(.*)$ /404.php?url=$1 [L] ErrorDocument 403 http://www.server.se/403/403.html ErrorDocument 500 http://server.se/500/500.html php_value upload_max_filesize 10M php_value post_max_size 10M

Visa signatur

Utvecklare (Technical Director) / Delägare - Björnmamman

Permalänk
Medlem
Skrivet av Madsoul:

Kanske nåt sånt här. Är inte helt säker

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?(.*)$ /404.php?url=$1 [L]

Gör man så här måste man också se till att 404.php skickar rätt HTTP-kod. Det är riktigt otrevligt att uppge HTTP-koden "200 OK" när man skickar ett 404-felmeddelande.

En bättre metod är att titta på Apaches dokumentation för ErrorDocument och konstatera att Apache definierar nya CGI-variabler när den hämtar 404-sidan. Dessa kan man komma åt i PHP:

<p>Kunde inte hitta filen "<?php echo $_SERVER['REDIRECT_URL']; ?>"</p>

Detta fungerar med den .htacces du använder nu, dvs.

Edit: Men man måste fortfarande skicka rätt HTTP-kod:

<?php header('HTTP/1.1 404 Not Found'); ?>

Permalänk
Medlem
Skrivet av You:

Gör man så här måste man också se till att 404.php skickar rätt HTTP-kod. Det är riktigt otrevligt att uppge HTTP-koden "200 OK" när man skickar ett 404-felmeddelande.

En bättre metod är att titta på Apaches dokumentation för ErrorDocument och konstatera att Apache definierar nya CGI-variabler när den hämtar 404-sidan. Dessa kan man komma åt i PHP:

<p>Kunde inte hitta filen "<?php echo $_SERVER['REDIRECT_URL']; ?>"</p>

Detta fungerar med den .htacces du använder nu, dvs.

Edit: Men man måste fortfarande skicka rätt HTTP-kod:

<?php header('HTTP/1.1 404 Not Found'); ?>

Vad menar du med header? Den skickas ju inte av en php fil utan av en .htaccess filen till 404 när jag lägger in din kod så står det bara Notice: Undefined index: REDIRECT_URL in C:\wamp\www\404\notfound.php

Permalänk
Medlem

När alla dessa $server inte fungerar kan felet då vara att ISAPI module inte finns på min server?

Permalänk
Medlem
Skrivet av kobbe92:

När alla dessa $server inte fungerar kan felet då vara att ISAPI module inte finns på min server?

$_SERVER skriver du rätt?

Visa signatur

Utvecklare (Technical Director) / Delägare - Björnmamman