login  Naam:   Wachtwoord: 
Registreer je!
 Forum

.htaccess (Controle GEEN /) EN (.*?)-regex

Offline ArieMedia - 29/07/2009 09:18 (laatste wijziging 30/07/2009 09:20)
Avatar van ArieMediaGouden medaille

PHP ver gevorderde
Goedendag,

Ik ben nu ongeveer 2 dagen bezig met deze .htaccess en het wil gewoon niet lukken.

Ik zit met een .htaccess die al op meerdere site's gedraaid worden. Nu heb ik als vraag gekregen van een collega om deze te herschrijven zodat deze ook zonder een extra / te zien zijn. (Dus jousite.nl/gaar/ maar ook jousite.nl/gaar) Nu staat in de huidige .htaccess zown 30 rewrite rules, en om deze allemaal aan te passen is veel werk. zeker ook omdat OVERAL index.html achter word gegooid. deze regex aanpassen heeft geen nut, al geprobeerd!

Hoe kan ik ervoor zorgen dat een een URL automatisch word gerefreshed naar de url MET / .
Ik neem aan dat een regex die controleerd of de laatste character geen / is, alleen ik kan deze niet vinden?

En, een 2e vraag losstaand van dit, ik ben een beetje met regexen aan het spelen om het te leren, in een tutorial werd aangegeven dat (.*?) een hele andere invloed heeft dan (.*). Kan iemand mij dit uitleggen?

In hoop op antwoord 

3 antwoorden

Gesponsorde links
Offline vinTage - 29/07/2009 15:11
Avatar van vinTage Nieuw lid @ 2e vraag quantifiers

Verder zou ik ook niet alles toestaan in je GET, dus werken met character classes ipv (alles_wat_je_wilt).
Stel dat je 1e parameter overal ?categorie is, dat is dus niet nummeriek of hoort geen gare zooi te bevatten, dan gebruik je
[a-z], deze staat alleen lowercase letters toe (normaal voor een categorie imo)

De 2e parameter is bijvoorbeeld altijd een $id, dus gebruik je [0-9].


etc, zo beveilig je je gets al dmv htaccess.

Wat betreft je slash op het einde, ik ben ook niet zo'n held met regexes, maar als je die in je characterclass bijplaats, dan is hij optioneel afaik.



Offline Martijn2008 - 29/07/2009 15:16
Avatar van Martijn2008 PHP beginner Nummerieke GET waardes kun je ook zo doen:

  1. <?php
  2.  
  3. $intGet = intval( $_GET['cat'] );
  4.  
  5. ?>


Deze functie parsed altijd een integer!
Offline ArieMedia - 29/07/2009 15:21 (laatste wijziging 04/08/2009 13:13)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
vinTage schreef:
@ 2e vraag quantifiers

Verder zou ik ook niet alles toestaan in je GET, dus werken met character classes ipv (alles_wat_je_wilt).
Stel dat je 1e parameter overal ?categorie is, dat is dus niet nummeriek of hoort geen gare zooi te bevatten, dan gebruik je
[a-z], deze staat alleen lowercase letters toe (normaal voor een categorie imo)

De 2e parameter is bijvoorbeeld altijd een $id, dus gebruik je [0-9].


etc, zo beveilig je je gets al dmv htaccess.

Wat betreft je slash op het einde, ik ben ook niet zo'n held met regexes, maar als je die in je characterclass bijplaats, dan is hij optioneel afaik.


Bedankt voor het antwoord!
@ niet alles toestaan ect.
Ik ben pas op dit bedrijf (half jaar) en ze hebben een compleet CMS. Nu willen ze hiervan de .htaccess veranderd hebben, alleen word er een extra parameter meegegeven via de get die de gebruiker niet altijd ziet.
  1. RewriteRule ^(.*)/$ $1/index.html

Alles word dus weggeschreven met als extra parameter index.html.
En hierop gaat veel fout. als ik het weghaal zullen veel modules niet meer werken omdat het CMS hiermee aan de slag gaat. (gebrek aan kennis ben ik bang). Het CMS moet zo blijven zoals het nu is en mag niks veranderen in de code want dat betekend dat elke klant een cms-update moet krijgen. Heb helaas niet het CMS zelf geschreven anders had ik er een snufje voor bedacht maar ik mag het echt enkel en alleen in de .htaccess regelen.

Helaas werkt dit niet:
  1. RewriteRule ^(.*)([^/])$ $1$2/ [R]

Hij pakt nu wel alles zonder laatste slash, maar helaas word de hele URL omvergegooid Een URL word bijv
  1. : Array ( [menu] => <FILTER>/home/users/<FILTER>/httpdocs/go/portal/index.html/ [sub] => portal [op] => home )


Terwijl het dit hoort te zijn
  1. Array ( [menuman] => 1 [hm] => portal [op] => index )


-----------------
Edit: @ Martijn2008
-----------------
Ik mag niks in de code veranderen, het gaat hier helemaal niet om een waarde als integer terugparsen, als het dat was dan had ik hier geen topic staan 

BUMP 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s