Toon posts:

[.htaccess] rewrite engine

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo ik ben gedurende een uur al bezig om dit ene probleempje op te lossen, maar het wil niet..

als ik bijvoorbeeld naar

www.dewebsite.nl ga.. moet ik gewoon op index.php komen
als ik naar www.dewebsite.nl/blaat ga..
moet ik op page.php?page=blaat bv. komen..

Dit is wat ik nu heb:

RewriteEngine on
rewriterule ^(*.) page.php?page=$1

Maar als ik naar www.dewebsite.nl ga kom ik ook meteen op de page.php link.. hoe hou ik dit tegen?

bvd,

nick

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

code:
1
2
3
RewriteEngine On
RewriteRule ^$ index.php [L]
RewriteRule ^(.+)$ page.php?page-$1


Zoiets :) ?

DM!


Verwijderd

Topicstarter
nee helaas :'(

ik krijg nu als waarde GET

de link, namelijk:

Profiles/viewprofile.php

[ Voor 72% gewijzigd door Verwijderd op 22-01-2007 15:00 ]


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

En als je een RewriteBase toevoegd?

edit:
Wat bedoel je met ^^, ik begrijp eerlijkgezegd niet wat je bedoelt :) .

[ Voor 54% gewijzigd door JHS op 22-01-2007 15:01 ]

DM!


Verwijderd

Topicstarter
wat ik wil bereiken is :
als je naar localhost gaat -> index.php
als je naar localhost/nick gaat -> Profiles/viewuser.php?usrname=nick

bvd,

nick

Verwijderd

Is de rewrite module geactiveerd in apache?

Verwijderd

Topicstarter
ja, het werkt ook.. ik moet alleen weten hoe ik bereik wat k wil bereiken

standaard als er niets staat (localhost) gewoon naar index.php
en anders (localhost/nick bv)naar de map profiles/viewuser.php?username= <-- hier de getwaarde in de url

[ Voor 6% gewijzigd door Verwijderd op 22-01-2007 15:11 ]


Verwijderd

Topicstarter
Oke het werkt nu, enige probleem is nog:

RewriteRule ^(.*)$ Profiles/viewprofile.php?usrNickName=$1

By bovenstaande regel pakt ie $1 = Profiles/viewprofile.php
maar hij gaat wel netjes naar Profiles/viewprofile.php..

maar weet iemand waarom $1 als Profiles/viewprofile.php word gepakt?

bvd,

nick

  • mithras
  • Registratie: Maart 2003
  • Niet online
Dan had * JHS het toch bijna goed:
RewriteEngine On
RewriteRule ^$ index.php [L]
RewriteRule ^(.*)$ profiles/viewuser.php?username=$1
Dus de .+ naar een .* veranderen en de - door een = (maar dat zal een typo zijn)

Wellicht dat je onder je RewriteEngine On nog dit wil zetten:
RewriteBase /

Voor de "veiligheid" is dit ook nog handig op op te nemen:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

En misschien wil je nog ^(.*)$ veranderen nar ^/(.*)$ (dus met een /). Probeer wat uit, dan komt vanzelf het juiste uitrollen (is mijn ervaring :p )
Verwijderd schreef op maandag 22 januari 2007 @ 15:22:
Oke het werkt nu, enige probleem is nog:

RewriteRule ^(.*)$ Profiles/viewprofile.php?usrNickName=$1

By bovenstaande regel pakt ie $1 = Profiles/viewprofile.php
maar hij gaat wel netjes naar Profiles/viewprofile.php..

maar weet iemand waarom $1 als Profiles/viewprofile.php word gepakt?

bvd,

nick
Dan pas je gewoon je Regular Expression aan. Die maakt nu een match op alles (.*), maar je wil dus forceren dat er Profiles voor moet staan. [search=regex] moet dan voldoende hulp bieden denk ik ;)

[ Voor 33% gewijzigd door mithras op 22-01-2007 15:25 ]


Verwijderd

Topicstarter
Hej dank je..
maar hoezo word by my $1 als de link gezien in deze zin:

RewriteRule ^(.*)$ Profiles/viewprofile.php?usrNickName=$1

hij gaat wel netjes naar de betreffende pagina maar als k de get waarde usrNickName ophaal zie ik:

Array
(
[usrNickName] => Profiles/viewprofile.php
)

???

als ik van
RewriteRule ^(.*)$ Profiles/viewprofile.php?usrNickName=$1
dit maak:
RewriteRule ^nick/(.*)$ Profiles/viewprofile.php?usrNickName=$1

word $1 wel goed herkent in de url

[ Voor 23% gewijzigd door Verwijderd op 22-01-2007 15:30 ]


  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op maandag 22 januari 2007 @ 15:27:
als ik van
RewriteRule ^(.*)$ Profiles/viewprofile.php?usrNickName=$1
dit maak:
RewriteRule ^nick/(.*)$ Profiles/viewprofile.php?usrNickName=$1
Misschien heb je mijn edit nog niet gezien, maar in je eerste geval match je dus op alles, terwijl je in het tweede geval matcht op nick/iets, waarbij "iets" als je eerste parameter ($1) wordt doorgegeven. Wil je dus met Profiles/iets matchen, moet je je regex aanpassen. Je kan niet in een regel zowel op nick/ als Profiles/ matchen, daarvoor heb je twee regels nodig ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Waar hoort mijn topic?

Dit heeft niets met PHP te maken maar met Apache, en hoort derhalve in Windows Servers en Server-software.

PRG>>WSS

'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.


Verwijderd

Topicstarter
sorry, ik lees het idd nu pas.. maar moet dit met ereg.. ik ben nogal onbekend met .htaccess files.. ( voor het eerst dat ik het gebruik ).. of is regex een functie daarvoor?

Verwijderd

Topicstarter
excuses NME

  • mithras
  • Registratie: Maart 2003
  • Niet online
Verwijderd schreef op maandag 22 januari 2007 @ 15:37:
sorry, ik lees het idd nu pas.. maar moet dit met ereg.. ik ben nogal onbekend met .htaccess files.. ( voor het eerst dat ik het gebruik ).. of is regex een functie daarvoor?
Als je gewoon de moeite doet om te [search=regex] of [search=regular expression] of dat bij Google doet ([google=regex], [google=regular expression]) zie je dat de methode van (.*) verloopt met een regular expression. Het is een algemene manier van op strings "filteren". Het is een algemeen principe, dus als je je inleest in de materie snap je wat ^(.*)$ betekent, en snap je óók hoe je andere matches kan maken ;)

offtopic:
En er bestaat een Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif icoontje voor het wijzigen van je post

[ Voor 9% gewijzigd door mithras op 22-01-2007 15:41 ]

Pagina: 1