Honda: modrewrite

Hallo,

ich habe folgende rewriterule:
RewriteRule ^(.*)/(.*)(.html?)$ text.php?A=$1&B=$2 [L]

Problem:

Alle relativen Pfade der entsprechenden Dateien (für stylsheets, javascripts, etc.) stimmen nun nicht mehr, da ja nun Dateiordner simuliert werden.

Wie bekomme ich es hin, dass ich die Datei sowohl als
text.php?A=1&B=2

also auch
/1/2.html

aufrufen kann, ohne alle Pfade in absolute umschreiben zu müssen?

Merci,
Honda

  1. Hallo Honda,

    Wie bekomme ich es hin, dass ich die Datei sowohl als
    text.php?A=1&B=2

    also auch
    /1/2.html

    aufrufen kann, ohne alle Pfade in absolute umschreiben zu müssen?

    Du könntest im PHP-Script in Abhängigkeit von $_SERVER['REQUEST_URI'] Dir die relativen Pfade dynamisch zusammenbasteln und diese dann ausgeben - das ist aber *viel* mehr Arbeit, als die Pfade einfach in absolute umzuschreiben.

    Eine weitere Alternative wäre, das <base>-Element in HTML zu nehmen, D.h. <base href="irgendwas"> zu machen - der Browser bezieht dann alle Bilder, Stylesheets etc. auf diese Basisadresse und nicht auf den eigentliche geladenen URI - hat allerdings den Nachteil, dass Anker-Links (href="#foo") sich auch darauf beziehen - und deswegen beim ersten Sprung die Seite komplett neu geladen wird. Ferner könnte es noch zu anderen Nebeneffekten kommen, wenn Du <base> einsetzt. In SELFHTML wird das <http://de.selfhtml.org/html/kopfdaten/basis.htm#adresse@title=<base>-Element beschrieben>.

    Ich würde als Lösung absolute Pfade nehmen.

    Viele Grüße,
    Christian

    1. Hi Christian,

      Ich würde als Lösung absolute Pfade nehmen.

      Viele Grüße,
      Christian

      Gibt es vielleicht eine möglichkeit in der .htaccess eine Regel festzulegen, die die entsprechenden Ordner bei den relativen Links hinzufügt?

      Gruß,
      Honda

      1. Hallo Honda,

        Gibt es vielleicht eine möglichkeit in der .htaccess eine Regel festzulegen, die die entsprechenden Ordner bei den relativen Links hinzufügt?

        Nicht Out-of-the-Box - und mir ist auch kein Zusatzmodul für den Apachen bekannt, das das tun würde (selbst wenn das existiert, würde das auch erst installiert werden müssen).

        Mal von vorne: Warum genau müssen eigentlich die relativen Links in *beiden* Fällen stimmen? Und wo genau liegt Dein Problem mit absoluten Links?

        Viele Grüße,
        Christian

        1. Hi Christian,

          Mal von vorne: Warum genau müssen eigentlich die relativen Links in *beiden* Fällen stimmen? Und wo genau liegt Dein Problem mit absoluten Links?

          Das Problem liegt darin, dass es 3 Domains (Endungen at/de/ch) gibt mit der die Seiteninhalte dargestellt werden.

          Wenn also jemand unter der .at-Domain einloggt, dann würde bei Absoluten Pfaden nur mehr 1 Domain möglich sein,.. oder sehe ich das falsch?

          Gruß,
          Honda

          1. Hallo Honda,

            Mal von vorne: Warum genau müssen eigentlich die relativen Links in *beiden* Fällen stimmen? Und wo genau liegt Dein Problem mit absoluten Links?

            Das Problem liegt darin, dass es 3 Domains (Endungen at/de/ch) gibt mit der die Seiteninhalte dargestellt werden.

            Wenn also jemand unter der .at-Domain einloggt, dann würde bei Absoluten Pfaden nur mehr 1 Domain möglich sein,.. oder sehe ich das falsch?

            Naja, Du brauchst ja nicht absolut absolute Pfade nehmen, Du kannst ja auch "serverrelative" Pfade nehmen, d.h. Pfade, die zum Document-Root absolut sind - aber halt nicht insgesamt absolut. ;-)

            Sprich sowas wie:

            <img src="/foo/bla.png" alt="">
            <a href="/x/y">...</a>

            Oder verstehe ich Dein Problem falsch?

            Viele Grüße,
            Christian

            1. Naja, Du brauchst ja nicht absolut absolute Pfade nehmen, Du kannst ja auch "serverrelative" Pfade nehmen, d.h. Pfade, die zum Document-Root absolut sind - aber halt nicht insgesamt absolut. ;-)

              Sprich sowas wie:

              <img src="/foo/bla.png" alt="">
              <a href="/x/y">...</a>

              Merci,.. hiermit funktioniert es nun bestens.
              Honda

          2. Hallo!

            Wenn also jemand unter der .at-Domain einloggt, dann würde bei Absoluten Pfaden nur mehr 1 Domain möglich sein,.. oder sehe ich das falsch?

            Schreib einfach: http://example.at/css/styles.css

            Der ist auch von einer .de oder .ch-Domain aus erreichbar.

            ciao, ww

            --
            Ein japanisch-deutsches Gedicht
            sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)