Toon posts:

[PHP] .htaccess 404 -> php .. oude url opvragen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wat ik dus wil is:

www.pagina.nl/henk

nu bestaat deze niet maar moet dus het volgenden worden:

www.pagina.nl/index.php?nick=henk

ik heb al 1001 mogelijkheden geprobeert maar niet is werkend te krijgen althans op de linux server , het onderstaande werkt wel gewoon onder IIS + php.

nu heb ik hetvolgende:

.htacces:
code:
1
ErrorDocument 404 http://www.letschatnow.nl/beta/404.php

404.php:
code:
1
2
3
4
5
6
7
<?
$nick = basename($HTTP_SERVER_VARS['QUERY_STRING']);

header("Location: http://".$HTTP_SERVER_VARS['HTTP_HOST']
              .dirname($HTTP_SERVER_VARS'PHP_SELF'])
              ."/"."index.php?nick=".$nick);                        
?>

Het punt is hoe vraag ik de niet bestaande URL op dit lukt op de linux server niet met :
QUERY_STRING / REQUEST_URI

  • Bas Jansen
  • Registratie: Juni 2000
  • Laatst online: 16-06 18:29
Zet eens een phpinfo(); in het 404 script, dan zie je vanzelf welke variabele je wel nodig hebt.

Verwijderd

Topicstarter
Heb ik gedaan ... op locaal (IIS) verschenen ze er .. op server alleen de naam van 404.php en daar zit ik niet echt op te wachten :'(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kijk es naar:
$REDIRECT_URL
$REDIRECT_STATUS

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:15

Kees

Serveradmin / BOFH / DoC
paar dingen;
1. je .htaccess is goed
2. gebruik $REDIRECT_URL, $REDIRECT_STATUS
3. stuur een header("HTTP/1.1 200 OK");
4. laat de pagina zien :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
ok heb dus geprobeert:
en werk dus niet :(
als test mijn 404.php ziet er zo uit:
code:
1
2
3
4
5
  $nick = $HTTP_SERVER_VARS['REDIRECT_URL'];
  $henk = $HTTP_SERVER_VARS['REDIRECT_STATUS'];

  header("HTTP/1.1 200 OK");
  print "blaat:$nick<br>henk:$henk";

resultaat:

blaat:
henk:

kijk zelf : http://www.letschatnow.nl/noemmaarwat

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:15

Kees

Serveradmin / BOFH / DoC
code:
1
2
3
4
$nick = $REDIRECT_URL;
  $henk = $REDIRECT_STATUS;
  header("HTTP/1.1 200 OK");
  print "blaat:$nick<br>henk:$henk";

Werkt die?
doe anders een "print_r($GLOBALS)" om te zien wat je moet hebben :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

index.php: <- gewoon wel neerzetten...
PHP:
1
2
3
4
5
6
7
<?
header("HTTP/1.1 302 kijk hier eens!");
header("Location: index.php?nick=henk");
header("Refresh: 0;URL=index.php?nick=henk");
die("<html><meta http-equiv='Refresh' value='index.php?nick=henk' />
  <a href='index.php?nick=henk'>klik hier om verder te gaan</a></html>");
?>

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op donderdag 20 december 2001 17:10 schreef Kees het volgende:
code:
1
2
3
4
$nick = $REDIRECT_URL;
  $henk = $REDIRECT_STATUS;
  header("HTTP/1.1 200 OK");
  print "blaat:$nick<br>henk:$henk";

Werkt die?
doe anders een "print_r($GLOBALS)" om te zien wat je moet hebben :)
http://www.php.net/manual/en/function.print-r.php
Warning

This function will continue forever if given an array or object that contains a direct or indirect reference to itself or that contains an array or object on a deeper level that does so. This is especially TRUE for print_r($GLOBALS), as $GLOBALS is itself a global variable and contains a reference to itself as such.
[php]
foreach($globals as $a=>$b) {
echo("<b>$a</b>=$b");
}

Localhost, sweet localhost


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

Op donderdag 20 december 2001 20:40 schreef kvdveer het volgende:
lezen?

en op dat 2e bericht, PHP zal netjes aan het einde van die print_r zeggen dat het een oneidige recursion is en gaat dan vrolijk verder met de rest van het script..

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op donderdag 20 december 2001 20:43 schreef Timpie2000 het volgende:

[..]

lezen?
lezen is een, begrijpen is twee. Sommige kwartjes vallen wat langzamer. Bijvoorkeur bij mensen zonder IQ.
Sorry... ik zal volgende keer iets beter nadenken of ik het begrijp... ;)
en op dat 2e bericht, PHP zal netjes aan het einde van die print_r zeggen dat het een oneidige recursion is en gaat dan vrolijk verder met de rest van het script..
Ik heb het nooit getest... Ik had het alleen gelezen en voor waar aangenomen. Afijn. weer wat geleerd.

Localhost, sweet localhost


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Op woensdag 19 december 2001 23:04 schreef F13tsbel:
code:
1
2
3
...
.htacces:
...
of je maakt een .htaccess bestand aan met de juiste naam... ;)

Verwijderd

Topicstarter
heb nu hetvolgende in mijn 404.php staan vraag ik de volgende url aan:
http://www.letschatnow.nl/kareltje

kom ik kareltje nergens tegen..

404.php:
PHP:
1
2
3
4
5
6
7
<?
  print "<h1>globals</h1>";
  foreach($GLOBALS as $a => $b)
  {
    echo("<b>$a</b>=$b<br>");
  }
?>

oja en mijn .htaccess heet ook .htaccess

Voor resultaten van het script:

http://www.letschatnow.nl/kareltje

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Oplossing: gebruik een relatief pad naar 404.php
Voorbeeld: ErrorDocument 404 /404.php
Getest op: Apache/1.3.22 PHP/4.1.0RC2
Output 404.php:
REDIRECT_ERROR_NOTES=File does not exist: /var/www/lll
REDIRECT_REQUEST_METHOD=GET
REDIRECT_STATUS=404
REDIRECT_UNIQUE_ID=ACEOO3CoAQMBRGIPZjY
REDIRECT_URL=/lll

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
kun je niet de window title uilezen en dan:

spit out: "[windowtitle] doesn't exist on this server";

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:15

Kees

Serveradmin / BOFH / DoC
nee, dat kan niet in php.

Ik heb er inderdaad ook overheen gelezen, als je een "externe" redirect in de 404 errordoc zet, dan gaat hij er van uit dat het extern is, en zal dus ook geen variables zetten. Maak er een interne redirect van en dan werkt het wel :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
Jes joepie jes

het werkt:)

.htaccess aangepast..
en het werkt !!!! eindelijk..


[spam mode]
Oja ... aanmelden op de site mag ook altijd natuurlijk ;)
[/spam mode]
Pagina: 1