Vraag & Antwoord

Servers

[.htaccess] mod_rewrite lukt niet

Anoniem
None
4 antwoorden
  • Graag wil ik mijn URI's vereenvoudigen en ik wil dat doen met .htaccess en mod_rewrite. Het gaat om een foto-album met de vaste structuur als volgt:[list:ff2eb11ac3][*:ff2eb11ac3]directory [i:ff2eb11ac3]/kiekjes/[/i:ff2eb11ac3][*:ff2eb11ac3]albumnaam[*:ff2eb11ac3]1 of meer subalbumnamen[/list:u:ff2eb11ac3]Het grote probleem is dat er meerdere subalbums kunnen zijn, daar kom ik niet uit. In principe is de laatste naam de unieke naam van het (sub)album. Nu heb ik:[code:1:ff2eb11ac3]RewriteEngine On
    RewriteBase /kiekjes/
    RewriteRule ^([^\.\?/]+)$ /kiekjes/view_album.php?set_albumName=$1 [QSA][/code:1:ff2eb11ac3]Allereerst een vraag hierover: waarom QSA? De volgende vraag is: hoe zorg ik ervoor dat het hele pad genegeerd wordt behalve de laatste "directory"? Dus [i:ff2eb11ac3]/kiekjes/uitgaan/odessa/[/i:ff2eb11ac3] moet hetzelfde resultaat geven als [i:ff2eb11ac3]/kiekjes/uitgaan/a/b/c/d/odessa/[/i:ff2eb11ac3] en [i:ff2eb11ac3]/kiekjes/uitgaan/a/b/c/d/odessa[/i:ff2eb11ac3]. Wat ik zelf dacht was dit:[code:1:ff2eb11ac3]RewriteRule ^[/.]*([^\.\?/]+)/?$ /kiekjes/view_album.php?set_albumName=$1[/code:1:ff2eb11ac3]Maar dit werkt helaas niet… Wie kan me helpen?

    Bij voorbaat dank,

    - Bas.
  • [b:4123e44de5]UPDATE:[/b:4123e44de5] De volgende regel leek me logisch, maar ook die werkt niet…[code:1:4123e44de5]RewriteRule ([^\.\?/]+)/?$ /kiekjes/view_album.php?set_albumName=$1[/code:1:4123e44de5]- Bas
  • Verplaatst van "Webdesign" naar "Servers".
  • Moet het niet zoiets zijn?
    [code:1:63c3e3b619]
    RewriteRule ([^/]+)/?$ /kiekjes/view_album.php?set_albumName=$1
    [/code:1:63c3e3b619]

    Een snelle manier om een regexp te checken is dit:
    [code:1:63c3e3b619]
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <input type="text" value="uitgaan/a/b/odessa/d/odessa/" />
    <button onclick="test()">test</button>
    <script type="text/javascript">
    var x=document.getElementsByTagName('input')[0];
    function test(){
    y=/([^/]+)\/?$/.exec(x.value);
    alert(y);
    }
    </script>
    </body>
    </html>
    [/code:1:63c3e3b619]
    Misschien heb je er wat aan.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.