[php+apache] leesbare URLs redirecten met behoud URL

Pagina: 1
Acties:

  • js303
  • Registratie: April 2003
  • Laatst online: 08-05 18:22
hoi voor een site waar ik aan werk hebben we een lijst met 'vriendelijke' url's die ik middels een PHP opzoekscriptje opvang, de $_SERVER['REQUEST_URI'] opzoek in een mysql tabel en indien gevonden redirect naar een php-pagina. bijv.
http://www.site.com/bookstore -> index.php?pageid=1&articleid=3

welnu, dit werkt prima maar na de redirect ( header("Location:") ) verschijnt vervolgens weer de URL http://www.site.com/index.php?pageid=1&articleid=3 in de url-bar.

is er een mogelijkheid in php om te redirecten terwijl http://www.site.com/bookstore in de bar blijft staan, of is dat iets dat ik in Apache moet doen? readfile() is geen optie want die output gewoon de file naar het scherm zonder 't door de php parser te halen...

[ Voor 12% gewijzigd door js303 op 09-03-2005 21:57 ]


  • Isengrim
  • Registratie: Februari 2004
  • Nu online
Volgens mij moet je ff opzoek naar mod-rewrite

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Maak een file die .htaccess heet en zet daar dit in:
code:
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^bookstore/?$ index.php?pageid=1&articleid=3 [NC]

En ze die file daarna in je webroot. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 02-05 12:11

dArtagnan

Een voor allen, allen voor een

Kleine aanvulling op hierboven.
code:
1
2
3
RewriteEngine On
RewriteRule  ^pagina$  pagina.php  [L]
RewriteRule  ^bookstore/([0-9]+)$ index.php?pageid=1&articleid=$1 [L]
Met [L] doe je een interne redirect waarbij de url http://www.site.com/bookstore blijft staan. Als je [R] gebruikt dan komt er bovenin de url te staan index.php?pageid=1&articleid=3. Je kunt er ook nog NC aan toevoegen ([L,NC]), dit staat voor no-case, niet meer hoofdlettergevoelig.

http://corz.org/serv/tricks/htaccess2.php

  • js303
  • Registratie: April 2003
  • Laatst online: 08-05 18:22
Koraalduivel schreef op donderdag 10 maart 2005 @ 01:36:
Kleine aanvulling op hierboven.
code:
1
2
3
RewriteEngine On
RewriteRule  ^pagina$  pagina.php  [L]
RewriteRule  ^bookstore/([0-9]+)$ index.php?pageid=1&articleid=$1 [L]
Met [L] doe je een interne redirect waarbij de url http://www.site.com/bookstore blijft staan. Als je [R] gebruikt dan komt er bovenin de url te staan index.php?pageid=1&articleid=3. Je kunt er ook nog NC aan toevoegen ([L,NC]), dit staat voor no-case, niet meer hoofdlettergevoelig.

http://corz.org/serv/tricks/htaccess2.php
hmm dat met die [L] flag werkt niet zoals je zegt: ik zie alsnog gewoon de url verspringen naar index.php?pageid=1&articleid=2.

ik lees net op http://httpd.apache.org/d..._rewrite.html#RewriteRule dat die [L] flag staat voor:
Stop the rewriting process here and don't apply any more rewriting rules. This corresponds to the Perl last command or the break command from the C language. Use this flag to prevent the currently rewritten URL from being rewritten further by following rules. For example, use it to rewrite the root-path URL ('/') to a real one, e.g., '/e/www/'.

[ Voor 6% gewijzigd door js303 op 10-03-2005 14:31 ]


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 07:23
Je dient ook include() te gebruiken in plaats van readfile().
Readfile geeft, net als file_get_contents, de inhoud van en bestand.

Je zult dit inderdaad mbv apache en interne redirects moeten oplossen. Gebruik daarvoor bovenstaande voorbeelden.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

[L] betekent inderdaad het het de laatste rewrite rule is of iets dergelijks. Alleen [NC] gebruiken (of niets, als je wil dat het spul case sensitive is) werkt bij mij in ieder geval prima.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1