Toon posts:

[PHP] Get variabele mooi in URL verwerken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voordat ik deze vraag stel heb ik de zoekfunctie en google gebruikt, maar een gebrek aan juiste zoektermen is het probleem, vandaar ook de creative topictitel.

Wat heb ik nu:
www.domeinnaam.nl/users.php?username=pietje

Deze pagina werkt perfect, ik kom op de userpage van Pietje

Wat wil ik:
www.domeinnaam.nl/Pietje

Hoe bereik ik dit en hoe wordt dit genoemd zodat ik me erin kan verdiepen?

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Dat kan met mod_rewrite voor apache. Hiervoor bewerk je het .htaccess bestand.

Edit:
*O* FiPo 8)7 >:)

[ Voor 45% gewijzigd door een moderator op 12-08-2008 15:01 ]

Ey!! Macarena \o/


  • L01
  • Registratie: December 2003
  • Laatst online: 04-02 10:49

L01

keywords: .htaccess , url rewriting

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 19-12-2025
Ik denk dat je op zoek bent naar
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Edit:
Spuit 12 >:)

[ Voor 12% gewijzigd door Enfer op 10-08-2008 23:55 ]


  • Gonadan
  • Registratie: Februari 2004
  • Laatst online: 10:41

Gonadan

Admin Beeld & Geluid, Harde Waren
Zoek eens op 'url rewriting' of 'mod rewrite'.
Daar kom je vast verder mee. :)

Edit:
spuit 11...12...13!!! *O*

[ Voor 24% gewijzigd door Gonadan op 10-08-2008 20:44 ]

Look for the signal in your life, not the noise.

Canon R6 | RF 24-70 f/2.8 L | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • _reboot_
  • Registratie: December 2004
  • Laatst online: 08-02 20:57
zoek eens op htaccess

//spuit11

[ Voor 23% gewijzigd door _reboot_ op 10-08-2008 20:12 ]


  • Muthas
  • Registratie: December 2005
  • Niet online

Muthas

O+

Check de FAQ hier op GoT: Programming FAQ - PHP

Verwijderd

Topicstarter
Stormlooptopic :D dank allen, met de aangegeven links en keywords ga ik het wiel uitvinden.

  • L01
  • Registratie: December 2003
  • Laatst online: 04-02 10:49

L01

haha ja makkelijke vragen levert gauw zo'n topic op, is alleen lasting om naar te zoeken als je de keywords niet weet, succes! :)

Hi, I'm a signature virus. Put me in your signature to help me spread.


Verwijderd

Topicstarter
Ik heb nu een htaccess document met de volgende inhoud

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.*$ /users.php?username=$1

www.domeinnaam.nl/pietje verwijst nu naar www.domeinnaam.nl/users.php?username=pietje

Maar
www.domeinnaam.nl gaat nu niet meer goed, hoe kan ik er omheen werken dat hij alleen maar doorverwijst als achter de / iets staat wat geen bestaande file is?

(dus www.mijndomein.nl verwijst naar index.php, www.mijndomein.nl/*.php verwijst naar een bestaande file, www.mijndomein.nl/Images verwijst naar de map images, maar www.mijndomein.nl/pietje blijft hij rewriten?

[ Voor 47% gewijzigd door Verwijderd op 10-08-2008 23:13 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
De gekozen aanpak is niet zo future-proof. Wat als je ooit op hetzelfde domein een andere pagina wilt serveren? Je kunt beter domeinnaam/user/username gebruiken en alle opties openhouden.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Een slotje is niet nodig op een topic als je je oplossing hebt. Zie daarvoor ook onze faq betreffende topiceinde. Maar bedankt voor het posten van je (helaas echter alom bekende :P ) oplossing. Je weet nooit wie hier nog op stuit ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Noork
  • Registratie: Juni 2001
  • Niet online
Kleine toevoeging. Misschien is het handiger om zoiets te doen: www.domeinnaam.nl/users/pietje

Anders kun je b.v. problemen krijgen als er een gebruiker 'index.php', 'images', 'stats' of 'css' is :)

Verwijderd

Topicstarter
Ik heb mijn post hier boven inmiddels geedit met een nieuwe vraag, /users/pietje kan wel, maar liever niet.
Verwijderd schreef op zondag 10 augustus 2008 @ 23:03:
Ik heb nu een htaccess document met de volgende inhoud

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.*$ /users.php?username=$1

www.domeinnaam.nl/pietje verwijst nu naar www.domeinnaam.nl/users.php?username=pietje

Maar
www.domeinnaam.nl gaat nu niet meer goed, hoe kan ik er omheen werken dat hij alleen maar doorverwijst als achter de / iets staat wat geen bestaande file is?

(dus www.mijndomein.nl verwijst naar index.php, www.mijndomein.nl/*.php verwijst naar een bestaande file, www.mijndomein.nl/Images verwijst naar de map images, maar www.mijndomein.nl/pietje blijft hij rewriten?

[ Voor 77% gewijzigd door Verwijderd op 10-08-2008 23:17 ]


Verwijderd

Topicstarter
Ik heb nu:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !-f [OR]
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.*)\.*$ /users.php?username=$1

Nu doet hij alles rewriten, ondanks de RewriteCond (dus ook bijvoorbeeld /index.php en /images)
Waar maak ik de denkfout?

[ Voor 144% gewijzigd door Verwijderd op 11-08-2008 00:30 . Reden: Conditie aangepast ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dit gaat even naar WSS (Waar hoort mijn topic?, ook al wist je dat niet toen je het topic startte :P )

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
kan een modje de topictitel dan even editen naar iets van apache .htaccess ofzo? [php] schrikt zo af in WSS ;)

  • Noork
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op zondag 10 augustus 2008 @ 23:43:
Ik heb nu:

RewriteRule ^(.*)\.*$ /users.php?username=$1

Welke denkfout maak ik waardoor /pietje niet wordt rewrite?
Volgens mij klopt hij niet helemaal. Probeer eens:
code:
1
2
RewriteEngine On
RewriteRule ^([^/]*)$ /users.php?user=$1 [L]


Deze site is wel handig om te gebruiken als je zelf weinig kennis van mod_rewrite hebt: http://www.mod-rewrite-wizard.com/

Verwijderd

Topicstarter
Dank, met enige mazzel werkte het wel, maar zo te zien is dit de correcte manier nu ik het heb nagezocht.

Die site werkt prima, maar helaas kan ik daar geen condities invoeren

Mijn condities:
RewriteCond %{REQUEST_URI} !-f [OR]
RewriteCond %{REQUEST_URI} !-d

gewenste resultaat:
/index.php (bestaande file) rewrite hij niet
/images (bestaande dir) rewrite hij niet
/ gaat naar de index.php
/pietje (geen bestaande file of dir) wordt rewrite

Op dit moment rewrite hij alles en lijkt zich dus niets aan te trekken van de condities die ik aangegeven heb, en ik zie echt niet wat ik nou fout doe.

[ Voor 5% gewijzigd door Verwijderd op 11-08-2008 00:47 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op zondag 10 augustus 2008 @ 23:43:
Nu doet hij alles rewriten, ondanks de RewriteCond (dus ook bijvoorbeeld /index.php en /images)
Wat gebeurt er als een user zich index.php of images noemt? Als de site groot genoeg is, komen die grappenmakers vanzelfbeen there done that, exact dezelfde situatie.

En in je rewrite moet die OR natuurlijk een AND zijn ;)

[ Voor 7% gewijzigd door GlowMouse op 11-08-2008 00:48 ]


Verwijderd

Topicstarter
GlowMouse schreef op maandag 11 augustus 2008 @ 00:47:
[...]

Wat gebeurt er als een user zich index.php of images noemt? Als de site groot genoeg is, komen die grappenmakers vanzelfbeen there done that, exact dezelfde situatie.
Hoef je je geen zorgen om te maken, dit voorbeeld (van de users) is puur als beeldvorming, uiteindelijk gaat er geen keuze in komen maar worden het gegenereerde namen uit wat andere velden, lang verhaal, dus vandaar lekker makkelijk het herkenbare user-voorbeeld gebruikt

Verwijderd

Topicstarter
GlowMouse schreef op maandag 11 augustus 2008 @ 00:47:
[...]
En in je rewrite moet die OR natuurlijk een AND zijn ;)
Zodra ik die [OR] wijzig in een [AND} krijg ik een 500 internal server error
Volgens google zou mod_rewrite niet geinstalleerd zijn, maar het herschrijven deed hij eerder wel (te veel, toen ik nog geen condities had)

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op maandag 11 augustus 2008 @ 00:58:
[...]


Zodra ik die [OR] wijzig in een [AND} krijg ik een 500 internal server error
Volgens google zou mod_rewrite niet geinstalleerd zijn, maar het herschrijven deed hij eerder wel (te veel, toen ik nog geen condities had)
[AND] is dan ook geen geldige tag. RewriteCond doet standaard AND, tenzij je er OR achterzet. ziehier

[ Voor 8% gewijzigd door GlowMouse op 11-08-2008 01:00 ]


Verwijderd

Topicstarter
Dat verklaart het, mijn logica zegt dus

code:
1
2
3
4
5
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^([^/]*)$ /users.php?username=$1 [L]

Dit heeft als resultaat

/ is blanco (zou moeten verwijzen naar index.php, misschien doet hij dat wel)
/index.php is blanco (en deze heeft wel content)
/images wordt /images/?username=images (terwijl de map wel bestaat)
/images/ gaat keurig naar het mapje images
/pietje gaat keurig naar de user pietje

Verwijderd

Topicstarter
Een klein schopje, weet iemand waarom de 3 dikgedrukte punten in de post hierboven niet goed gaan?

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Ik gebruik
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Zoals je ziet dus met REQUEST_FILENAME.
Probeer eens gebruik te maken van de error logging. Daarmee zijn de meeste problemen wel op te lossen.
    RewriteLog    D:/logs/apache_rewrite.log
    RewriteLogLevel 9
Vergeet niet hem ook weer uit te zetten, anders heb je al snel GB's vol logs ;)
Pagina: 1