2016-05-06 11 views
1

Wir leiten 404 Fehlerseiten auf eine zu verfolgende PHP-Seite um. Wir hatten verwendet .htaccess Code:Suche nach der Fehlerseite für 404

ErrorDocument 404 404.php?sr=%{REQUEST_URI} 

aber wenn Sie auf unserer 404.php Seite versuchen wir zu holen:

$requri = getenv ("REQUEST_URI"); 

Es ist uns nicht die Seitennamen zeigt, von dem Benutzer wie abc.html umgeleitet wurde, und wir wollen um diesen Seitennamen zu erkennen, kann jemand in dieser Angelegenheit helfen?

+1

Haben Sie stattdessen '$ _SERVER [" HTTP_REFERER "]' versucht? – Justinas

+0

'% {REQUEST_URI}' Variable ist Teil der 'rewriteRule' und' RewriteCond' Direktiven. Dies funktioniert nicht mit 'ErrorDocument' – starkeen

Antwort

1

Sie können mod-Rewrite verwenden eine nicht existierende Anfrage zu umleiten 404.php:

RewriteEngine on 


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

-d passt ein bestehendes Verzeichnis und -f passt eine vorhandene Datei auf dem Server. RewriteCond prüft, ob der angeforderte Dateiname nicht ist! ein vorhandenes Verzeichnis oder eine vorhandene Datei, bevor die Anforderung an /404.php weitergeleitet wird. Sie können auch $1 durch %{REQUEST_URI} ersetzen, um die vollständige uri zu erhalten.

+1

Gute Antwort @Starkeen –

Verwandte Themen