Toon posts:

ISAPI_Rewrite RewriteRule problemen (clean url's)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Omdat ik genoodzaakt ben over te stappen op IIS i.p.v. Apache maar wel dezelfde functionaliteiten wil behouden die ik gebruik onder Apache heb ik ISAPI_Rewrite geïstalleerd om gebruik te maken van clean URL.

Onder Apache maak ik gewon gebruik van forcetype en multiviews om test/1/2/3 om te zetten in /test?var1=1&var2=2&var3=3

Ik heb dus geen ervaring met mod_rewrite van Apache, na avond zoeken en voorbeelden uitproberen is dit het beste wat me tot nu toe gelukt is:

[ISAPI_Rewrite]
RewriteRule ^/test/(.*)/(.*?)/(.*?) /test.php\?var1=$1&var2=$2&var3=$3

Deze regel werkt dus alleen maar als je test/1// of test/1/2/ of test/1/2/3 doet. Dit is uiteraard niet hoe ik het wil hebben.

Mijn bedoeling is dat je zowel /test/1 en /test/1/2 en test/1/2/3 kun doen. Het is geen probleem als ik dit gewoon per file moet defineren. Ook zou het mooi zijn dat het niet uitmaakt of je nou /test/1/ of /test/1 doet. Ik heb al boel tutorials kunnen vinden om clean url te krijgen maar geen 1 die wat dieper op rewriting ingaat. De rules voor mod_rewrite en ISAPI_Rewrite zijn gewoon gelijk volgens mij.

Iemand hier die me uit de brand kan helpen?

Verwijderd

[ISAPI_Rewrite]
RewriteRule (.*?\.asp)(\?[^/]*)?/([^/]*)/([^/]*)(.+?)? $1(?2$2&:\?)$3=$4?5$5: [N,I]

misschien?

Verwijderd

Topicstarter
/me zucht heel diep...

Van de bovenstaande reactie krijg ik dus echt jeuk, probeer je alleen post te scoren ofzo. Het enige wat je gedaan heb is de website van ISAPI_Rewrite opzoeken en gewoon een voorbeeldje gepaste. Als je mijn vraag had gelezen had je vanzelf ook wel kunnen concluderen dat die Rule totaal niet voldoet aan mijn eisen.

Begrijp je zelf uberhaupt wel wat wat er staat, of iig wat je ermee kunt?

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-08 17:28

alienfruit

the alien you never expected

Twisted in principe zou je ook je eigen ISAPI filter kunnen schrijven, zodat je het zo kunt afhandelen als je zelf wilt.

Waarom gebruik je niet gewoon REQUEST_URI en parse je de query string in je script zelf? Hoef je later ook niks in je config file te veranderen; als je de styl van je url zou willen veranderen :)

[ Voor 46% gewijzigd door alienfruit op 29-05-2003 11:34 ]


Verwijderd

Topicstarter
Mja mijn kennis is niet bijzonder groot, maar volgens mij behoud je de extensie van het bestand met die REQUEST mogelijkheid. Ik moet dus zoiets hebben dat

/test/1/2/3 of /test/1/ of /test/1/2

naar /test.php?var1=$1&var2=$2&var3=$3 omzet

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ik denk dat alienfruit zoiets bedoeld:

RewriteRule ^/test/(.*) /test.php\?$1

Je script wordt dan als het ware zo aangeroepen test.php?1/2/3 of test.php?1/2
Je kan dan dmv een explode("/", $REQUEST_URI) de variabelen scheiden en gebruiken in je script.

Verwijderd

Topicstarter
Ik ben al iets verder ik weet niet of het zo netjes is maar dit werkt tot op zeker hoogte.

code:
1
2
3
4
[ISAPI_Rewrite]
RewriteRule ^/test/(.*)/(.*)/(.*) /test.php\?id=$1&bla=$2&kees=$3
RewriteRule ^/test/(.*)/(.*) /test.php\?id=$1&bla=$2
RewriteRule ^/test/(.*) /test.php\?id=$1


Alleen nu moet ik nog een soort Regel hebben die alle kijkt wat het laatste teken in de url is en als dat een slash is moeten die verwijderd worden

dus /test/1//// moet /test/1 worden
en /test/2/3/ moet /test/2/3 worden

Verwijderd

:D
sorry, ik wou je alleen maar helpen

Verwijderd

Verwijderd schreef op 29 May 2003 @ 12:19:
Ik ben al iets verder ik weet niet of het zo netjes is maar dit werkt tot op zeker hoogte.

code:
1
2
3
4
[ISAPI_Rewrite]
RewriteRule ^/test/(.*)/(.*)/(.*) /test.php\?id=$1&bla=$2&kees=$3
RewriteRule ^/test/(.*)/(.*) /test.php\?id=$1&bla=$2
RewriteRule ^/test/(.*) /test.php\?id=$1


Alleen nu moet ik nog een soort Regel hebben die alle kijkt wat het laatste teken in de url is en als dat een slash is moeten die verwijderd worden

dus /test/1//// moet /test/1 worden
en /test/2/3/ moet /test/2/3 worden
In dat geval kun je in plaats van .* beter overal [^/]* zetten, dan kun je het volgende gebruiken:

RewriteRule ^/test/([^/]*)/([^/]*)/([^/]*)/* /test.php\?id=$1&bla=$2&kees=$3

[edit]
Je moet dan wel even de rules in omgekeerde volgorde neerzetten...
Eerst de kortste, en als laatste de langste.

[ Voor 9% gewijzigd door Verwijderd op 29-05-2003 14:24 ]

Pagina: 1