mod_rewrite und Ajax

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mod_rewrite und Ajax

    Hallo Zusammen

    natürlich habe ich ein kleines Problem.
    Ich beschäftige mich derzeit mit mod_rewrite (Clean URLs)

    Ich habe eine Seite auf Basis PHP entwickelt und clean die URLs so:
    RewriteEngine on
    RewriteRule ^/(.*)$ /index.php?page_title=$1&$2 [QSA,L]

    ein Link könnte z.B. so aussehen:
    href="startseite"

    intern verarbeitet wird dann:
    index.php?page_title=startseite &[ggf weitere Parameter]

    soweit denke/hoffe ich dass ich das Richtig verstanden hab.Das Funktioniert auch. Aber ich binde weitere Dateien mit ajax ein:

    function loadArticlePreviewPic(pic,div,firm,pos)
    {
    id = div; xmlHttpObject.open('get','./custom_files/templates/getArticlePreviewPic.php?picture='+pic+'&pro='+div+'&firm='+firm+'&pos='+pos,true);
    xmlHttpObject.onreadystatechange = handleArticlePreviewPic;
    xmlHttpObject.send(null);
    return false;
    }
    function handleArticlePreviewPic()
    {
    if (xmlHttpObject.readyState == 4)
    {
    document.getElementById('ArticlePreviewPic_'+id).innerHTML = xmlHttpObject.responseText;
    }
    }

    jetzt wird wenn diese Funktion aktiviert wird nicht mehr die getArticlePreviewPic.php abgezweigt sonden die index.php.
    Vor der mod_rewrite Umstellung hat das alles funktioniert.

    Ich denke auch dass ich Verstehe wo das Problem liegt. Ich sage dem ja in dem Rule dass er alles was da kommt zur index.php machen soll. Wie kann ich diverse php-seiten davon ausschließen. Im Endeffekt sollen alle Anfragen ohne Dateien auf die Index.php und alle anderen in Ruhe gelassen werden.
    also wenn die Anfrage "startseite" lautet soll index.php?page_title=startseite (so wie jetzt auch) und bei einer Anfrage wie getPage.php soll auch die getPage.php übergeben werden.

    Hoffe ich habe mich und mein Problem verständlich ausgedrückt

    Danke für eure Hilfe

  • #2
    Eine RewriteCond vorschalten, die abprüft, ob das angeforderte eine existierende Datei ist – Flag -f
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für den Hinweis.

      Habe es nun so probiert:

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^/(.*)$ /index.php?page_title=$1&$2 [L]

      wenn ich das richtig Verstanden habe sollte nun das Rule-Statement nur ausgeführt werden wenn es sich bei dem Aufruf um keine existierende Datei handelt. Aber leider wird das Statement immer aufgerufen

      Kommentar


      • #4
        ok ich hab eine, wenn vielleicht auch nicht die sauberste Lösung.

        RewriteEngine on
        RewriteRule ^.+\.(php|css)$ - [L]

        RewriteRule ^/(.*)$ /index.php?page_title=$1 [QSA,L]

        damit läuft jetzt wieder alles wie gewünscht.

        Kommentar

        Lädt...
        X