PHP file als subdirectory tonen?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Captain Pervert
  • Registratie: Mei 2000
  • Laatst online: 05-03 12:19
Stel je voor; de categorie met id#4 heet "muziek":

http://www.site.nl/index.php?action=showcat&catid=4

Hoe kan ik het makkelijkste deze url weer laten geven als: http://www.site.nl/muziek ?

Het makkelijkst is wellicht om de subdirectory's fysiek aan te maken, en daarin een index.php te plaatsen die de lange URL include, maar kan dit ook anders?
Volgens mij kan dit niet met mod_rewrite in een .htaccess; je kan daarmee alleen subtiele, cosmetische wijzigingen in de URL aanbrengen (bijvoorbeeld dat er staat: index/action/4 ofzo) maar niet iets compleet anders. Of vergis ik mij?

Porsche 928 - It's about as fast as you can go without having to eat airline food.


Acties:
  • 0 Henk 'm!

  • Japius
  • Registratie: April 2003
  • Laatst online: 30-08 20:57
Als je weet dat categorie 4 altijd muziek is, kan je dat prima opnemen in een .htaccess.
code:
1
RewriteRule ^muziek index.php?catid=4

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Met mod_rewrite kan je zelfs de complete URL wijzigen.

Je kan in princiepe gewoon een rewrite rule maken die site.nl/muziek omzet naar site.nl/index.php?ellenlangevariabelenreeks.
Enige is dat je dan bij je rules moet gaan instellen welk woord overeenkomt met welke reeks variabelen.

edit:
Zoals boven mij uitgelegd dus ;)

[ Voor 6% gewijzigd door McKaamos op 03-04-2009 09:17 ]

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Voordeel is wel dat je het goed beveiligd krijgt :) Je kan dan alleen invullen wat je aangeeft in je .htaccess. Dus geen rare variabele zelf in je adresbar gooien

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • Scyth
  • Registratie: Juli 2001
  • Laatst online: 16-03-2024

Scyth

Fat finger, three beer

Nadeel is dat je minder flexibel bent omdat je variabelen gaat hardcoden in je htaccess

[ Voor 27% gewijzigd door Scyth op 03-04-2009 09:25 ]

Dell Studio XPS 16
Project: BavBierSub 1.0 BavBierSub 2.0


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Een andere optie is om multiviews te gaan gebruiken :)

Acties:
  • 0 Henk 'm!

  • Gersomvg
  • Registratie: December 2005
  • Laatst online: 21-09 16:07
Scyth schreef op vrijdag 03 april 2009 @ 09:22:
Nadeel is dat je minder flexibel bent omdat je variabelen gaat hardcoden in je htaccess

Daarom doe ik het altijd zo:
code:
1
2
3
4
5
6
7
8
9
Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.php !-f
RewriteCond %{REQUEST_FILENAME}index.html !-f
RewriteRule ^(.*)$ index.php

waarna ik het in de index.php compleet volgens een eigen systeem parse :)

Acties:
  • 0 Henk 'm!

  • Captain Pervert
  • Registratie: Mei 2000
  • Laatst online: 05-03 12:19
Scyth schreef op vrijdag 03 april 2009 @ 09:22:
Nadeel is dat je minder flexibel bent omdat je variabelen gaat hardcoden in je htaccess

Maakt niet zoveel uit, er zijn maar 8 categorieën en er komt zeer zelden eentje bij.
Japius schreef op vrijdag 03 april 2009 @ 09:12:
Als je weet dat categorie 4 altijd muziek is, kan je dat prima opnemen in een .htaccess.
code:
1
RewriteRule ^muziek index.php?catid=4
Dit werkt (nou ja, met action=showcat& ertussen nog, dan).

Super, bedankt!

Porsche 928 - It's about as fast as you can go without having to eat airline food.


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 20:16
Guillome schreef op vrijdag 03 april 2009 @ 09:19:
Voordeel is wel dat je het goed beveiligd krijgt :) Je kan dan alleen invullen wat je aangeeft in je .htaccess. Dus geen rare variabele zelf in je adresbar gooien
Daar kun je absoluut niet op vertrouwen. Iemand kan nogsteeds gewoon
code:
1
index.php?catid=5';DROP TABLE catid;

of iets dergelijks intypen in de adresbalk.

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 22-09 13:47
gersompie schreef op vrijdag 03 april 2009 @ 09:45:
[...]

Daarom doe ik het altijd zo:
code:
1
2
3
4
5
6
7
8
9
Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}index.php !-f
RewriteCond %{REQUEST_FILENAME}index.html !-f
RewriteRule ^(.*)$ index.php

waarna ik het in de index.php compleet volgens een eigen systeem parse :)
Dit is de manier die ik ook gebruik en hierin heb je volledige controle over je URL en vars. Hierdoor kan niemand je app laten vastlopen door vanalles in de url mee te geven.

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

mcDavid schreef op vrijdag 03 april 2009 @ 10:39:
[...]


Daar kun je absoluut niet op vertrouwen. Iemand kan nogsteeds gewoon
code:
1
index.php?catid=5';DROP TABLE catid;

of iets dergelijks intypen in de adresbalk.
Tuurlijk kan hij dat typen. Maar als je nou zegt dat index.php.* wordt doorgelinkt naar de root van je site, en alleen urlrewrite urls mag gebruiken, ben je daar vanaf.

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

Verwijderd

yoki2007 schreef op vrijdag 03 april 2009 @ 10:47:
[...]


Dit is de manier die ik ook gebruik en hierin heb je volledige controle over je URL en vars. Hierdoor kan niemand je app laten vastlopen door vanalles in de url mee te geven.
En hoe lees je dan de waarden uit? stel dat: /categorie/4/ opgegeven wordt.
lees je de $_SERVER['REDIRECT_URL'] uit, als voer voor de parser?

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 03 april 2009 @ 14:08:

En hoe lees je dan de waarden uit? stel dat: /categorie/4/ opgegeven wordt.
lees je de $_SERVER['REDIRECT_URL'] uit, als voer voor de parser?
Gewoon $_SERVER['REQUEST_URI']

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 20:16
Guillome schreef op vrijdag 03 april 2009 @ 10:57:
[...]

Tuurlijk kan hij dat typen. Maar als je nou zegt dat index.php.* wordt doorgelinkt naar de root van je site, en alleen urlrewrite urls mag gebruiken, ben je daar vanaf.
True, niet aan gedacht! Al zou ik persoonlijk toch liever alsnog in het script zelf de waardes valideren...
Pagina: 1