Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[.htaccess] modrewrite

Pagina: 1
Acties:
  • 185 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste mensen,

Ondanks een reeks aan tutorials krijg ik het maar niet voor elkaar om mijn .htaccess goed te krijgen. Ik gebruik binnen mijn site de volgende opstelling:

www.url.nl/?s=[naamvanmap]&p=[naamvanbestand]

Als PHP dat leest include hij het bestand (include("includes/$_GET[s]/$_GET[p].php");) dat gaat vooralsnog goed.

Nu wil ik graag op dezelfde manier het bestand kunnen benaderen met de URL

www.url.nl/[naamvanmap]/[naamvanbestand]/

Maar dat wil niet lukken. Ik heb het geprobeerd met de volgende regels:
code:
1
2
3
4
5
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/(.*)/(.*)/$ index.php?s=$1&p=$2&id=$3
RewriteRule ^(.*)/(.*)/$ index.php?s=$1&p=$2


Bovenstaande code werkt niet, kan iemand mij vertellen hoe het wel moet? Als ik nu naar bovenstaande link ga, krijg ik geen 404 maar het ziet er ook niet hetzelfde uit als wanneer ik naar de eerste link ga.

Alvast bedankt!

Edit:
.htaccess wordt ondersteund door de server en ik upload het bestand naar de rootmap.

[ Voor 12% gewijzigd door Verwijderd op 20-10-2007 17:08 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

(.*) neemt ook / mee, dus die zult ge moeten escapen.

Probeer dit:
code:
1
([^/]*\.[a-zA-Z]*)

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Als PHP dat leest include hij het bestand (include("includes/$_GET[s]/$_GET[p].php");) dat gaat vooralsnog goed.
Hiervoor zou je gekielhaald moeten worden. Tenzij je eerst die variabelen hebt gecontroleerd.

Verder:
Het is meestal handiger om te rewriten naar een PHP script zónder dat je extra request parameters in de URL meestuurt, en gewoon het PHP script laten uitzoeken wat die onderdelen uit de URL precies moeten betekenen. Als je applicatie die URL's moet produceren, is het ook niet gek als je applicatie ze moet interpreteren.

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-09 20:59
Je bent al een heel eind gekomen, maar je expressies zullen niets matchen (zoals je zelf ook al had ondervonden). De expressie '.*', matcht namelijk alle tekens (dus ook je '/' tekens), je kan dit oplossen door alles te matchen wat geen / is:

^[/]*


Of je kan stricter matchen door zoiets te gebruiken (alleen getallen en letters):
code:
1
[0-9a-Z]*


Je rewriterule wordt dan:

RewriteRule ^(^[/]*)/(^[/]*)/(^[/]*)/$ index.php?s=$1&p=$2&id=$3

Verder ben ik het ook met Cheatah eens dat je de variabelen altijd moet checken en je ook prima alles naar een PHP script kan laten rewriten dat zelf bekijkt wat hij in moet laten / moet laten zien..
code:
1
RewriteRule ^.+ index.php

[ Voor 24% gewijzigd door Borizz op 20-10-2007 17:17 . Reden: code blokken lieten me in de steek door de expressie werd code block afgesloten ]

If I can't fix it, it ain't broken.


Verwijderd

Topicstarter
Bedankt, ik ga het even proberen en dan horen jullie weer van mij!
Hiervoor zou je gekielhaald moeten worden. Tenzij je eerst die variabelen hebt gecontroleerd.
Of course my horse ;)

Verwijderd

Topicstarter
RewriteEngine On
RewriteBase /

RewriteRule ^(^[/]*)/(^[/]*)/(^[/]*)/$ index.php?s=$1&p=$2&id=$3
RewriteRule ^(^[/]*)/(^[/]*)/$ index.php?s=$1&p=$2

Werkt helaas niet, ik krijg een 404 met deze code. Dat laatste vind ik ook interressant, zou je me hier wat meer over kunnen vertellen?

Ik neem aan dat je dan bedoeld dat index.php dan gewoon alle $_GET waarden krijgt.

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Heb je Snake's voorbeeld al geprobeerd?
Dus:
code:
1
([^/]*\.[a-zA-Z]*)
Je wilt toch overigens dat index.php alle waarden van $_GET ontvangt, dat begrijp ik uit je voorbeeldje... :)

[ Voor 11% gewijzigd door CH4OS op 26-10-2007 08:18 ]

Pagina: 1