• Da Weef
  • Registratie: Januari 2004
  • Laatst online: 31-10-2025
Ik heb voor mijn website een 404 pagina gebouwd, waarbij ik graag de 'foutieve' URL wil laten zien. Echter (mogelijk door bepaalde server instellingen) bleek dit niet mogelijk met php server variabelen. Zowel 'REDIRECT_URL' , 'HTTP_REFERER' als 'REQUEST_URI' produceerden danwel niets, danwel de URI van de error pagina.

Via mod_rewrite bedacht ik daarom de volgende workaround:

code:
1
2
3
4
RewriteEngine On
rewriteCond %{REQUEST_FILENAME} !-f
rewriteCond %{REQUEST_FILENAME} !-d
rewriteRule (.*) /error/404.php?url=$1


Ik heb echter het gevoel dat mijn oplossing nogal ranzig is en eventueel tot problemen kan leiden vanwege het omzeilen van de 'standaard' error afhandeling (al geef ik de error pagina wel een 404-header mee).
Kortom, mijn vraag is of jullie inderdaad problemen zien met deze oplossing en of er eventueel suggesties zijn om dit anders aan te pakken.

offtopic:
EDIT: Naar aanleiding opmerking cheatah interne redirect van gemaakt

[ Voor 5% gewijzigd door Da Weef op 02-03-2009 23:06 ]

.


Verwijderd

Je rewrite naar http:// en hebt dus altijd een externe redirect. Dit zou ik nooit doen.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Euh, wat is er mis met het gebruik van de standaard ErrorDocument directive?

http://httpd.apache.org/docs/2.0/mod/core.html#errordocument

Volgens Het Internet (http://www.onlamp.com/pub...003/02/13/davidsklar.html) krijg je dan een setje variabelen mee waarmee je kunt doen wat je wilt.

[ Voor 36% gewijzigd door CyBeR op 02-03-2009 23:07 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 31-10-2025
CyBeR schreef op maandag 02 maart 2009 @ 23:05:
Euh, wat is er mis met het gebruik van de standaard ErrorDocument directive?

http://httpd.apache.org/docs/2.0/mod/core.html#errordocument
Het probleem is dat als ik de standaard ErrorDocument methode gebruik ik dan de URL die de foutmelding genereert niet meer omhoog kan halen. Tenminste niet via de (php) variabelen die ik in OP vermeldde...

.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Dat werkt bij mij prima hoor.

ErrorDocument 404 /test/404.php in m'n .htaccess (onder /test)
in 404.php een simpele echo $_SERVER['REDIRECT_URL'];
en ik krijg als resultaat /test/foo als ik die url opvraag.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 31-10-2025
Ik wordt echt zo leip als een deur :S

Ik naar aanleiding van CyBer toch nog maar een keer checken of 'REDIRECT_URL' gegenereerd wordt...
En ja hoor... Nu wel... Snap echt niet wat ik vanmiddag fout heb gedaan dan...

Waarschijnlijk nog gecached of zoiets irritants. Maargoed, nu kan ik dus gewoon de Errordocument directive toepassen.

.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Waarschijnlijk vroeg je direct je 404 php op? ;)

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 31-10-2025
CyBeR schreef op dinsdag 03 maart 2009 @ 00:42:
Waarschijnlijk vroeg je direct je 404 php op? ;)
Jeetje, kom zo simpel over? ;) Ik heb gewoon getest met een niet-bestaande pagina. Echter wat vreemd was, is dat ik gistermiddag een volledige redirect kreeg, d.w.z. dat ik naar het adres van de error pagina werd gestuurd. Normaliter zou met ErrorDocument het adres van de foutieve pagina weergegeven moeten blijven (zoals nu het geval is).

Behalve dat ik wat onnodige php code heb verwijderd zou er verder geen verschil moeten zijn...

.


Verwijderd

Verwijderd schreef op maandag 02 maart 2009 @ 23:02:
Je rewrite naar http:// en hebt dus altijd een externe redirect.
Dat was daar dus de reden van.

  • Da Weef
  • Registratie: Januari 2004
  • Laatst online: 31-10-2025
Verwijderd schreef op dinsdag 03 maart 2009 @ 10:02:
[...]

Dat was daar dus de reden van.
Hmmm, ik dacht dat ik de ErrorDocument wel intern had gelinkt, maar het zou inderdaad kunnen dat ik daar de mist in ben gegaan...

.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Da Weef schreef op dinsdag 03 maart 2009 @ 09:06:
[...]


Jeetje, kom zo simpel over? ;) Ik heb gewoon getest met een niet-bestaande pagina. Echter wat vreemd was, is dat ik gistermiddag een volledige redirect kreeg, d.w.z. dat ik naar het adres van de error pagina werd gestuurd. Normaliter zou met ErrorDocument het adres van de foutieve pagina weergegeven moeten blijven (zoals nu het geval is).
Nou ja dat niet direct maar de symptomen komen overeen ;) Overigens ook met wat Cheatah zegt ja.

All my posts are provided as-is. They come with NO WARRANTY at all.

Pagina: 1