Url verkleinen met mod_rewrite

Pagina: 1
Acties:
  • 333 views

Acties:
  • 0 Henk 'm!

  • scartsjer
  • Registratie: Februari 2007
  • Laatst online: 28-03-2018
Ik ben bezig om mn cms systeem te verbeteren, door nu de url's te verkleinen doormiddel van de mod_rewrite functie.

nu heb ik dit:
code:
1
2
RewriteEngine On 
RewriteRule ^/drempt/(.*)/(.*) /drempt.php?MENID=$1&TYPE=$2


en ik krijg dit niet aan de praat... ik wil dus als t eenmaal werkt kunnen doen www.domein.nl/drempt/30/cat om bij de link www.domein.nl/drempt.php?MENID=30&TYPE=cat te komen.

wat doe ik verkeerd?

mod_rewrite staat aan op de server.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Mijn eerste gok zou zijn dat .* ook slashes matcht.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • PeetR
  • Registratie: Februari 2002
  • Laatst online: 13-09 22:20
volgens mij hoort die eerste / er niet en is het dus:
code:
1
2
RewriteEngine On
RewriteRule ^drempt/(.*)/(.*) drempt.php?MENID=$1&TYPE=$2


Maar wat gaat er niet goed? krijg je geen pagina te zien, kan de pagina niet gevonden worden etc...
Kijk anders in je logfile welke pagina er precies wordt aangeroepen.

Your time as a student is the best time of your life


Acties:
  • 0 Henk 'm!

  • scartsjer
  • Registratie: Februari 2007
  • Laatst online: 28-03-2018
ik heb dit :
code:
1
2
RewriteEngine On 
RewriteRule ^/drempt/([^/\.]+)/([^/\.]+)$ /drempt.php?MENID=$1&TYPE=$2


ook al geprobeerd maar dat werkte ook niet ...


edit. t werkt nu wel slash was het probleem...

[ Voor 13% gewijzigd door scartsjer op 12-08-2009 16:23 ]


Acties:
  • 0 Henk 'm!

  • dvdheiden
  • Registratie: Maart 2006
  • Laatst online: 16:49
Zoals PeetR schreef hoeven er geen slashes voor, ook bij de filename niet.

Dat zou dus zoiets worden:
code:
1
RewriteRule ^drempt/(.*)/(.*)$ drempt.php?MENID=$1&TYPE=$2


Daarnaast raad ik je aan om een RewriteCond op bestaande files of directories te doen:
code:
1
2
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

[ Voor 3% gewijzigd door dvdheiden op 12-08-2009 16:22 ]


Acties:
  • 0 Henk 'm!

  • scartsjer
  • Registratie: Februari 2007
  • Laatst online: 28-03-2018
jheej het werkt, alleen nu volgende probleem.... mn site raakt in een loop :S en ik weet zo 123 niet hoe dat nu kan komen?

www.ars-longa.nl/drempt/30/cat is het voorbeeld....

en wat doet die rewritecond?

[ Voor 8% gewijzigd door scartsjer op 12-08-2009 16:27 ]


Acties:
  • 0 Henk 'm!

  • dvdheiden
  • Registratie: Maart 2006
  • Laatst online: 16:49
Die rewriteConds:
!-d voorkomt dat bestaande directories door je mod_rewrite meegenomen worden, dus stel je hebt in de dir waar drempt.php staat ook een map img en je hebt deze rewritecond niet, zou:
code:
1
http://../drempt/img/

De volgende url opleveren:
code:
1
http://../drempt.php?MENID=img&TYPE=


De tweede (!-f) doet datzelfde voor bestaande bestanden, dat voorkomt dus het volgende:
code:
1
http://../drempt/img/a.gif

De volgende url opleveren:
code:
1
http://../drempt.php?MENID=img&TYPE=a.gif


Edit: de loop heb je er al uit zo te zien!

[ Voor 4% gewijzigd door dvdheiden op 12-08-2009 16:34 ]


Acties:
  • 0 Henk 'm!

  • Compizfox
  • Registratie: Januari 2009
  • Laatst online: 18:58

Compizfox

Bait for wenchmarks

Ik heb een soortgelijk probleem, ben ook SEF url's aan het toevoegen en heb wat examples uit dit topic gehaald. Ik gebruik dit:
code:
1
2
3
4
5
6
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^dotlars/(.*)$ index.php?page=$1

De bedoeling is dus dat als ik naar localhost/dotlars/home ga dat ik op localhost/index.php?page=home kom.
(ik gebruik localhost omdat de site nog op m'n computer staat).

Het werkt echter niet. Als ik naar localhost/dotlars/home ga, krijg ik
code:
1
2
3
Not Found

The requested URL /dotlars/home was not found on this server.


Wat is er verkeerd?

BTW sorry voor de topickaping O-)

Gewoon een heel grote verzameling snoertjes


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:52

Creepy

Tactical Espionage Splatterer

Eeehh. kom op zeg.

"Het werkt niet roepen" zonder verder aan te geven wat "niet werken" precies is en maar gewoon achterwege laten wat je nu zelf al allemaal hebt geprobeerd om het toch te laten werken is niet de bedoeling hier. Dat staat allemaal gewoon uitgelegd in PRG Beleid.

En dan vervolgens ook nog een topickaping die precies hetzelfde doet. Het is hier een forum, geen helpdesk om vragen te dumpen ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.