!? in url

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Haddi Vries

Haddi Vries

01/05/2014 13:49:23
Quote Anchor link
Hallo,

Ik wil dat mijn site friendly CEO url's krijgt, en daar bij gebruik ik htaccess.
Ik heb het volgende url:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
category.php?nameID=TITEL&title=NAAMVANARTIKEL?!&id=1


Zoals je ziet, heb ik bij de title, een ?! achter sommige artikelen bevatten namelijk een ! of een ?@#$ ectra.

Ik gebruik op dit moment:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^c/([a-zA-z]+)/([a-zA-z0-9?_-]+)/([0-9]+)$ category.php?nameID=$1&title=$2&id=$3 [L]


Maar helaas werkt dit niet, Is het ook mogelijk om zulke characters te trimmen? ik gebruik namelijk 2 rows waar de titel in zit, 1 zonder spaties dat is voor de url maar wil het eigenlijk ook zonder !@#$%^&*()_+|{}:"<>?/., ectra
Gewijzigd op 01/05/2014 13:50:20 door Haddi Vries
 
PHP hulp

PHP hulp

24/11/2024 02:34:46
 
- Pepijn  -

- Pepijn -

01/05/2014 13:53:26
Quote Anchor link
RewriteRule profile/([^/]+)/? /category.php?NameID=$1&title=$2&id=$3
Snel even getiept, misschien werkt het?
 
Michael -

Michael -

01/05/2014 13:55:40
Quote Anchor link
Dat soort tekens horen helemaal niet in een URL thuis.
Zorg dus eerst dat je URL er netjes uitziet. Hiervoor kun je rawurlencode en rawurldecode gebruiken.
Persoonlijk zou ik de rewriterule niet zo streng zetten voor een titel. Een ID kan je inderdaad op digits controleren. Een titel kun je bij weergave veilig weergeven met htmlentities of htmlspecialchars o.i.d. waardoor het niet uitmaakt wat erin staat. Of je haalt deze titel d.m.v. het ID sowieso uit de database waarbij het eigenlijk maar leuk is voor SEO.
 
- Pepijn  -

- Pepijn -

01/05/2014 13:57:30
Quote Anchor link
Toevoeging op Michael:
1)Waarom een ID, en NameID.
2)Maak het het simpelst mogelijk.
3)Waarom die characters?
 
Haddi Vries

Haddi Vries

01/05/2014 14:04:05
Quote Anchor link
Michael - op 01/05/2014 13:55:40:
Dat soort tekens horen helemaal niet in een URL thuis.
Zorg dus eerst dat je URL er netjes uitziet. Hiervoor kun je rawurlencode en rawurldecode gebruiken.
Persoonlijk zou ik de rewriterule niet zo streng zetten voor een titel. Een ID kan je inderdaad op digits controleren. Een titel kun je bij weergave veilig weergeven met htmlentities of htmlspecialchars o.i.d. waardoor het niet uitmaakt wat erin staat. Of je haalt deze titel d.m.v. het ID sowieso uit de database waarbij het eigenlijk maar leuk is voor SEO.


Ik heb rawurlencode() gebruikt maar dan krijg ik '%3F%21' dit in mij url adres, is het mogelijk om die te trimmen?

Toevoeging op 01/05/2014 14:06:01:

Pepijn --- op 01/05/2014 13:57:30:
Toevoeging op Michael:
1)Waarom een ID, en NameID.
2)Maak het het simpelst mogelijk.
3)Waarom die characters?

De ID en nameID is de isset, die verwijder ik uiteraard uit de url. Ik heb het nu ook c/CATEGORY/NAAMARTIKEL/ID
 
- Pepijn  -

- Pepijn -

01/05/2014 14:06:12
Quote Anchor link
@Haddi
Daar is rawurldecode voor.
 
Michael -

Michael -

01/05/2014 14:14:51
Quote Anchor link
Wat bedoel je met trimmen? 'Trimmen' is in mijn ogen iets weghalen/opschonen.
Je moet de url encode'n zodat ie geschikt is als url, als je de url daarna weer zou willen gebruiken kun je hem decode'n (rawurlencode, rawurldecode)
Als je echt geen rare tekens in je url wilt zou je deze ook zelf kunnen vervangen door iets anders. Zo worden spaties vaak vervangen door een streep en speciale tekens door 'gewone' tekens. Dit is niet altijd weer onomkeerbaar (Hoe wil je bijv é®þüúíóöö noemen en weer omkeren).
Edit: kijk bijv eens hoe de urls van phphulp eruit zien. ! en ? worden blijkbaar weggelaten, maar bijv $ wordt vervangen door 'dollarteken'.
Gewijzigd op 01/05/2014 14:16:26 door Michael -
 
Haddi Vries

Haddi Vries

01/05/2014 14:22:38
Quote Anchor link
Michael - op 01/05/2014 14:14:51:
Wat bedoel je met trimmen? 'Trimmen' is in mijn ogen iets weghalen/opschonen.
Je moet de url encode'n zodat ie geschikt is als url, als je de url daarna weer zou willen gebruiken kun je hem decode'n (rawurlencode, rawurldecode)
Als je echt geen rare tekens in je url wilt zou je deze ook zelf kunnen vervangen door iets anders. Zo worden spaties vaak vervangen door een streep en speciale tekens door 'gewone' tekens. Dit is niet altijd weer onomkeerbaar (Hoe wil je bijv é®þüúíóöö noemen en weer omkeren).
Edit: kijk bijv eens hoe de urls van phphulp eruit zien. ! en ? worden blijkbaar weggelaten, maar bijv $ wordt vervangen door 'dollarteken'.

Dat ene laatste is net wat ik zoek, het weg laten halen van ?! Ik heb in mijn mysql, 2 rows waar de title ingaat. 1 gaat er normaal en uit en laat het gehele row informatie zien, en de tweede row verwijderd de spaties ectra, maar heb helaas nog niet gedacht aan tekens zoals ! en ?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.