[PHP] Multiviews

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • xoniq
  • Registratie: April 2005
  • Laatst online: 11-09 12:30
Goedemiddag,

Ik heb even een vraag met betrekking tot multiviews in PHP.
Ik zie vaker dat sites gewoon dingen als dit gebruiken:

http://www.domein.nl/map1/map2/map3/

Waarbij alle 3 de mappen geen fysieke mappen zijn, maar waarmee het systeem die identificeert met 'labels' uit een database.
(Zoals een CMS, waarbij een virtuele treeview staat met de pagina's map1 en daaronder map2 enz.)

Ik heb zelf ook wat geprobeerd met multiviews, maar dan begint het altijd met:

http://www.domein.nl/index/map1/map2/map3/

Alvorens ik in de index pagina uit kan lezen wat er in de URL staat vanuit de index.php.
Heeft iemand hier een oplossing voor hoe ik het bovenste kan realiseren?

Bedankt!

Acties:
  • 0 Henk 'm!

  • Jaded
  • Registratie: Augustus 2001
  • Laatst online: 04-09 09:17
Dat doe je dan weer met mod_rewrite.
Als dat ondersteund is op de je server, zet je dit in je htaccess:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
In .htaccess een rewirerule opnemen waardoor je alles van domain.nl/something verwijst naar index.php? En als je geen apache hebt maar IIS, dan bestaan er vergelijkbare tools :)

Acties:
  • 0 Henk 'm!

  • Yeroon1986
  • Registratie: Augustus 2005
  • Laatst online: 01-08 10:13
En Google levert geen relevante resultaten voor je op?

http://www.google.nl/search?q=php+multiview

Acties:
  • 0 Henk 'm!

  • xoniq
  • Registratie: April 2005
  • Laatst online: 11-09 12:30
Ik heb zeker wel gegoogled, maar dan kreeg ik voorbeelden voor in een .htaccess die niet deden wat ik wou. Ik heb namelijk weinig kennis van .htaccess bestanden...

Maar Jaded zijn .htaccess voorbeeld doet precies wat ik wil. Bedankt!

Ik heb inderdaad mod-rewrite aanstaan (eigen webserver), alleen ja, kreeg elke keer verkeerde htaccess voorbeelden, waardoor ik niet echt verder kwam. Wist wel dat het met mod-rewrite moest.
Bedankt.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 11-09 13:55
Dit staat volledig los van MultiViews, wat een functionaliteit van Apache is en niet van PHP.

De RewriteEngine is inderdaad waarnaar je opzoek bent
code:
1
2
RewriteEngine On
RewriteRule .? index.php


Waarna je in index.php de $_SERVER['REQUEST_URI'] kunt uitlezen om te zien welke url oorspronkelijk werd opgevraagd, of je kunt de losse onderdelen van de URL capturen en aan je php doorgeven;

code:
1
2
RewriteEngine On
RewriteRule (.*)/(.*)/(.*) index.php?map1=$1&map2=$2&map3=$3

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Voor de duidelijkheid:
Multiviews helpt je hier niet omdat je niet eindigt met een file, maar met iets wat niet bestaat. Apache verzint niet zelf weer dat je eigenlijk de directory-index-file wilde met mapnamen erachter.

Vziw is dit inderdaad het handigst op te lossen met de rewrite engine. Voor alle gevallen waarbij het eerste deel van het pad ook daadwerkelijk bestaat werkt het wel met Multiviews :)
Pagina: 1