[htaccess] Modrewrite met ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kay Kay

Kay Kay

31/03/2009 19:36:00
Quote Anchor link
Dit is niet het juiste subforum, maar er is geen betere :p
Ik ben bezig met ModRewrite mijn url's mooi maken, maar ik loop nu vast op een stuk.

De regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^poll/([0-9]*)/[a-zA-Z0-9-\?]*/([0-9]*|last)/delete=([0-9]*)$ bekijk_poll.php?pollid=$1&p=$2&delete=$3


Dus ik wil naar zoiets gaan: http://site.nl/poll/18/Wat-vind-je-van-deze-website?/delete=79

Maar dat werkt niet ivm het vraagteken. Als ik het vraagteken weghaal werkt het wel en ik heb toch gewoon het vraagteken ge-escaped? Hoe moet het wel?
Gewijzigd op 01/01/1970 01:00:00 door Kay Kay
 
PHP hulp

PHP hulp

22/12/2024 07:03:06
 
Terence Hersbach

Terence Hersbach

31/03/2009 20:33:00
Quote Anchor link
vraagtekens en andere rare tekens kan je (naar mijn idee) beter niet gebruiken, vanwege verschillende intrepretaties van browsers en zoekmachine's

verder is dit niet zo mijn straatje, dus kan je verder niet helpen.
 
Jelmer -

Jelmer -

31/03/2009 20:41:00
Quote Anchor link
Je vraagteken markeert het begin van de query-string van de URL. Het is volgens mij geen regel, maar wel conventie om daar het vraagteken voor te gebruiken.

Volgens mij ziet Apache dat wat na je vraagteken komt ook niet als URL binnen mod_rewrite, maar als QUERY_STRING. De url is dan tot en met '...ze-website' en je querystring is '?/delete=79'.

Ik zou zeggen, gebruik gewoon geen vraagtekens of andere "vreemde" of gereserveerde tekens in je URL.
 
Kay Kay

Kay Kay

31/03/2009 20:48:00
Quote Anchor link
Oke, die moet er dus uitgehaald worden
//edit Ik heb deze functie gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    function tourl($string)
    {
        $tostripe = array(" ", "+", "_");
        $tonothing = array("?", "!", ",", ".","*","@","$","%","^","&", "(",")",";",":","'","\"", "\\", "|", ">", "<","~","`","");
        return rawurlencode(str_replace($tonothing, "", str_replace($tostripe, "-", $string)));
    }

Kan het simpeler? Volgens mij is er geen functie die al die tekens weghaalt?
Gewijzigd op 01/01/1970 01:00:00 door Kay Kay
 
Jelmer -

Jelmer -

31/03/2009 21:47:00
Quote Anchor link
Ik heb laatst zelf deze functie gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function make_url_friendly($string)
{

    $string = strval($string);
    
    $string = strtolower($string);
    
    $string = preg_replace('{[^a-z0-9]}', '-', $string);
    
    $string = preg_replace('{\-+}', '-', $string);
    
    return trim($string, ' -');
}

?>

Hij vervangt alle niet-standaard tekens door een streepje, en zorgt ervoor dat er nooit meerdere streepjes achter elkaar staan, of aan het begin of eind.
 



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.