Mod Rewrite mit ajax-variablen

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

  • Mod Rewrite mit ajax-variablen

    Hallo. Ich expermentiere gerade mit ajax (jquery-framework) und mod_rewrite und möchte gerne folgende Konstualation realisieren:

    Die urls werden dynamisch durch jquery erzeugt und sehen so aus:
    http://example.de/#website
    [COLOR=#0066cc]http://example.de/#internet[/COLOR]

    so soll die lösung aussehen:
    http://[COLOR=#0066cc]example[/COLOR].de/apps/website
    http://[COLOR=#0066cc]example[/COLOR].de/apps/internet

    mein lösungsvorschlag:
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /

    RewriteCond %{REQUEST_URI} apps/(.") /$
    RewriteRule ^#(.*)$ /apps/(.*) [L]

    Was funktioniert daran nicht?

    die abgespeicherte .htaccess datei liegt im selben unterverzeichnis (von htdocs) wie die daten.
    Zuletzt geändert von dankuxyz; 13.10.2010, 14:26.

  • #2
    Hallo,

    alles in einer URL nach dem #-Zeichen ist der Fragment Identifier, der auf HTTP-Eben keine Rolle spielt und ignoriert wird. Lediglich dein Browser nutzt ihn, um innerhalb eines Dokuments zu einer bestimmten Sprungmarke zu kommen. In HTML-Dokumenten sind das Elemente mit dem jeweiligen id- oder name-Attribut. In PDF-Dokumenten kann man so zu einer bestimmten Seite springen.

    Bitte entlinke deine Links und verwende die reservierten Domainnamen für Beispiellinks (siehe Signatur).

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      und wenn anstelle von den #website ein ?var=website stehen würde?
      das ganze würde dann so aussehn:

      [COLOR=#04558c]http://example.de/?var=website[/COLOR]
      [COLOR=#0066cc]http://example.de/?var=internet[/COLOR]

      so soll die lösung aussehen:
      [COLOR=#04558c]http://[/COLOR][COLOR=#0066cc]example[/COLOR][COLOR=#04558c].de/apps/website[/COLOR]
      [COLOR=#04558c]http://[/COLOR][COLOR=#0066cc]example[/COLOR][COLOR=#04558c].de/apps/internet[/COLOR]

      mein lösungsvorschlag:
      RewriteEngine on
      Options +FollowSymlinks
      RewriteBase /

      RewriteCond %{REQUEST_URI} apps/(.") /$
      RewriteRule ^#(.*)$ /apps/(.*) [L]

      Kommentar


      • #4
        Wenn du die URLs schon änderst, warum dann nicht gleich example.com/website bzw. example.com/internet? JQuery sendet den üblichen "X-Requested-With"-Header. Mit einer rewrite condition kannnst du also zwischen AJAX- und normalen Requests unterscheiden und unterschiedlich rewriten.

        Kommentar


        • #5
          ganz einfach. weil die daten nicht unter /intranet oder /website liegen.
          der name ist quasi nur ein alias.
          der wirkliche inhalt wird aus anderern ordner bezogen.

          Kommentar


          • #6
            Ist schon klar. Aber die Daten liegen ja auch nicht unter ?var=irgendwas.
            Will sagen: Du schreibst den Request doch sowieso um. Also warum clientseitig komplizierte URLs bauen?

            Anweisung für ModRewrite - mein Vorschlag:
            Wenn HTTP-Header X-Requested-With == 'XMLHttpRequest' und Request matcht domain/foo, dann umschreiben auf domain/apps/foo.

            Deine Idee war:
            Wenn Request matcht domain/?var=foo, dann umschreiben auf domain/apps/foo.

            Ergebnis ist das selbe, aber mit meinem Vorschlag wirkt das Rewriting wirklich nur auf AJAX-Requests. Wohingegen bei deiner Idee die Gefahr besteht, dass auch andere, Nicht-AJAX-Requests umgeschrieben werden, weil sie "zufällig" matchen.

            Kommentar


            • #7
              Die von dir verwendete .de-Domain existiert, ist aber vermutlich nicht deine Webseite.

              example.com/.net/.org sind für Beispiele vorgesehen. Bitte passe deine Beiträge entsprechend an.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X