Toon posts:

[.htaccess] {SCRIPT_URI} variabele meegeven aan 404 document

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een customized 404-errordocument te maken, onderdeel daarvan is dat de gebruiker een broken link kan aangeven bij de beheerder. De .htaccess file verwijst bij een 404 door naar 404.php:

code:
1
ErrorDocument 404 /test/errors/404.php


Punt is, als ik in die PHP-file het foutieve adres wil opvragen krijg ik het adres van de 404-pagina terug, ik moet het adres dus hebben van voor de redirect. Voor je je afvraagt of dit echt niet naar php wordt doorgestuurd: nee, ik heb de volledige $_SERVER array uitgeprint en phpinfo() en daar staat niets van het orginele adres in.
Omdat ik deze pagina generiek wil maken zodat ik hem de volgende keer kan gebruiken wil ik het toch graag oplossen in plaats van het weglaten. Dus wil ik het adres meesturen vanuit de .htaccess file, iets in de vorm van:

code:
1
ErrorDocument 404 /test/errors/404.php?url={SCRIPT_URI}


{SCRIPT_URI} heb ik daar neergezet om aan te geven dat het om die variabele gaat, die heb ik inmiddels gevonden, punt is dat hij die niet meestuurt en ik heb de afgelopen 3 uur nergens kunnen vinden hoe dat wel zou moeten. Vriend van me zegt dat ik kan proberen om $1 mee te sturen, dat zou de eerste meegegeven variabele zijn. Als ik dat doe krijg ik die ongeparsed weer terug (hij komt PHP dus letterlijk als "$1" binnen).

Is dit uberhaupt mogelijk wat ik wil en zo ja, hoe doe ik dat?

  • phYzar
  • Registratie: November 2001
  • Laatst online: 19:24
http://www.tweakers.net/appeltaart.php

als ik daar naar toe ga zie ik de 404 pagina. Maar wat staat er in de adresbalk? Toch echt het adres waar ik naartoe ben gegaan.

$_SERVER["request_uri"] oid zou het moeten zijn

linkje op php.net

[ Voor 23% gewijzigd door phYzar op 25-07-2004 01:57 ]


Verwijderd

Topicstarter
klopt ja, was het maar zo makkelijk. Als ik dat dus doe krijg ik 404.php of iets dergelijks. Ligt denk ik aan de serverinstellingen of zo, en daar kan ik niets aan veranderen aangezien die van lycos is.

  • phYzar
  • Registratie: November 2001
  • Laatst online: 19:24
donders, je hebt gelijk:

http://members.lycos.nl/weetikveel.php

maar je ziet wel je eigen error pagina op jouw manier? je kunt alleen geen variabelen eraan meegeven? Of krijg je elke keer de lycos 404 pagina?

Verwijderd

Topicstarter
nee ik heb hem zelf aangepast:

testje

bovenaan kan je de variabelen zien, die heb ik ge-echo'd. Zitten overigens nog wel wat meer foutjes in, maar het gaat me nu vooral om dit.

Verwijderd

$_SERVER['REDIRECT_URL'] wordt normaal opgevuld als je 404 wordt aangeroepen ... toch?

Verwijderd

Topicstarter
print_r($_)SERVER) bij een ingevoerde url "http://www.anwautos.nl/test/blah/":

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Array ( 
[DOCUMENT_ROOT] => /data/members/paid/a/n/anwautos.nl/htdocs/www 
[HTTP_ACCEPT] => application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7 
[HTTP_ACCEPT_ENCODING] => gzip,deflate 
[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5 
[HTTP_CONNECTION] => close 
[HTTP_HOST] => www.anwautos.nl 
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8 
[HTTP_X_FORWARDED_FOR] => 81.59.76.22 
[HTTP_X_FORWARDED_HOST] => www.anwautos.nl 
[HTTP_X_FORWARDED_SERVER] => customers.webc.lyceu.net 
[PATH] => /bin:/usr/bin:/sbin:/usr/sbin 
[REDIRECT_QUERY_STRING] => url=$1 
[REDIRECT_SCRIPT_URI] => http://www.anwautos.nl/test/errors/404.php 
[REDIRECT_SCRIPT_URL] => /test/errors/404.php 
[REDIRECT_STATUS] => 200 
[REDIRECT_URL] => /404.php 
[REMOTE_ADDR] => 81.59.76.22 
[REMOTE_PORT] => 58304 
[SCRIPT_FILENAME] => /data/members/paid/a/n/anwautos.nl/htdocs/www/test/errors/404.php 
[SCRIPT_URI] => http://www.anwautos.nl/test/errors/404.php 
[SCRIPT_URL] => /404.php 
[SERVER_ADDR] => 212.78.206.120 
[SERVER_ADMIN] => webadmin@lycos-europe.com 
[SERVER_NAME] => www.anwautos.nl 
[SERVER_PORT] => 80 
[SERVER_SIGNATURE] => 
[SERVER_SOFTWARE] => Apache (UNIX) 
[GATEWAY_INTERFACE] => CGI/1.1 
[SERVER_PROTOCOL] => HTTP/1.1 
[REQUEST_METHOD] => GET 
[QUERY_STRING] => url=$1 
[REQUEST_URI] => /test/errors/404.php?url=$1 
[SCRIPT_NAME] => /404.php 
[PATH_INFO] => /test/errors/404.php 
[PATH_TRANSLATED] => /data/members/paid/a/n/anwautos.nl/htdocs/www/test/errors/404.php 
[PHP_SELF] => /test/errors/404.php 
)


dus via PHP superglobals gaat het zeker weten niet lukken ;)

[ Voor 6% gewijzigd door Verwijderd op 25-07-2004 12:08 ]

Pagina: 1