Lex: HTACCESS: Seltsames Problem mit RewriteRule

Hallo!

Ich habe schon gefühlte 1000 Mal htaccess-Dateien mit Rewrite Rules erstellt, doch diesmal stehe ich vor einem sehr seltsamen Problem:

Die eigentlich einfache Aufgabe: Umwandlung von https://www.domain.com/pfad/datei.html in https://www.domain.com/index.php?parent=pfad&alias=datei

Zeile im Htaccess: RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html?$ /index.php?parent=$1&alias=$2 [QSA,L]

Auf der Testumgebung mit Server-Adresse funktionierte alles einwandfrei.

Auf der Liveseite werden manache (komischerweise nicht alle!) Adressen falsch aufgelöst und werfen in der Adresszeile etwas wie https://www.domain.com/pfad.htmldatei.html?parent=pfad&alias=datei aus.

Komischerweise funktioniert die Umwandlung manchmal, wenn man z.b. einen anderen Pfadnamen (hier der Paramenter "parent") angibt. Allerdings auch nicht immer.

Ich hoffe, das war halbwegs verständlich. Freue mich über jeden Lösungsansatz, da ich allmählich an dieser Geschichte verzweifle... Danke!!

  1. und werfen in der Adresszeile

    Die gezeigte Zeile macht nach meinem Ermessen gar nichts, was in der Adresszeile des Browsers sichtbar würde.

    Womöglich entsteht das Problem also an anderer Stelle.

    1. Die gezeigte Zeile macht nach meinem Ermessen gar nichts, was in der Adresszeile des Browsers sichtbar würde.

      Wie meinst du das? Die Zeile bewirkt dass die URL überschrieben wird. Das wird sie auch, allerdings falsch und ich hab keinen Tau warum 😕

      1. Die gezeigte Zeile macht nach meinem Ermessen gar nichts, was in der Adresszeile des Browsers sichtbar würde.

        Wie meinst du das? Die Zeile bewirkt dass die URL überschrieben wird.

        Ja. Aber Du hast geschrieben:

        und werfen in der Adresszeile etwas wie https://www.domain.com/pfad.htmldatei.html?parent=pfad&alias=datei aus.

        Eine Adresszeile gibt es nur im Browser. Diese würde nur dann geändert, wenn irgend etwas sichtbar wäre, worauf hin der Apache einen 301er oder 302er Statuscode (nebst der neuen URL) an den Browser schickt.

        Davon sehe ich aber nichts!

        Resultierende Vermutung:

        Das Problem entsteht an anderer Stelle oder ist in einer Weise beschrieben, welche die Ursache sorgfältig verbirgt.

  2. Hello,

    Du zeigst leider nur einen Auszug aus den Rewrite-Anweisungen.
    Zeig doch bitte mal alle Zeilen.

    Gibt es vielleicht vorher eine oder mehrere RewriteConditions?

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Zeig doch bitte mal alle Zeilen.

      Besonders die davor stehenden, denn da ist dieses "L" in den Optionen:

      RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html?$ /index.php?parent=$1&alias=$2 [QSA,L]
      

      Auch die /index.php (nebst den Includes) kommt als Verursacher in Frage.

  3. Okay - diese Lösung ist mir jetzt echt peinlich, aber vielleicht hilft es jemandem, der in der selben Situation ist:

    Mir haben tatsächlich die Browser Cookies quergeschossen! Cache geleert und alles geht wieder.

    Zu blöd, aber bin happy dass das jetzt auch geklärt ist. Hab schon an meinem Verstand gezweifelt.

    1. diese Lösung ist mir jetzt echt peinlich

      Mir haben tatsächlich die Browser Cookies quergeschossen!

      Eigentlich müsste es mir peinlich sein. Denn auf diese Ursache hast Du eigentlich einen Hinweis gegeben:

      Auf der Liveseite werden manche (komischerweise nicht alle!) Adressen falsch aufgelöst.

      Hm. Genau das.

      Cache geleert und alles geht wieder.

      @Verein: Taste einbauen, mit der man den Satz "Lösche alle Cookies, Storages und natürlich den Browserchache." als "Antwort 0815" beamen kann. (Das war jetzt nicht ganz ernst gemeint.)

      Für Dich wäre es aber schon wichtig gewesen, genauer zu erfahren ob (und welche) Cookies bzw. Values aus dem Storage bzw. ob der Cache war. Immerhin könnte es "etwas schwierig" sein, die Besucher dazu zu nötigen, den Browsercache und/oder Cookies und/oder den localStorage zu löschen.

      Ergo müsste man vom Server her "einwirken".

    2. Hallo

      Ich glaube das nochmal und nochmal zu lesen bringt mich inzwischen nicht mehr weiter.
      Cookies löschen hilft eine Rewrite Rule zu korrigieren?

      😕

      1. Hi,

        Hallo

        Ich glaube das nochmal und nochmal zu lesen bringt mich inzwischen nicht mehr weiter.
        Cookies löschen hilft eine Rewrite Rule zu korrigieren?

        mir geht es ähnlich: Ich versteh's auch noch nicht. Das wirkt für mich wie: "Ich habe die Mülltonne rausgestellt, und dann hat's aufgehört zu regnen."
        Das eine hat mit dem anderen nichts zu tun - oder ich erkenne den Zusammenhang nicht.

        Guten Start ins neue Jahr,
         Martin

        --
        Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
        1. Hallo,

          Das eine hat mit dem anderen nichts zu tun - oder ich erkenne den Zusammenhang nicht.

          Es war aber auch die Rede von Cache leeren, da könnte doch eine Zusammenhang sein?

          Gruß
          Kalk

          1. Cookies löschen hilft eine Rewrite Rule

            mir geht es ähnlich: Ich versteh's auch noch nicht.

            Es war aber auch die Rede von Cache leeren

            Naja.

            1. Es gab einen bestehenden Webauftritt. Also Zeug im Cache (auch die Weiterleitung per Redirect kann da mit drin sein!)
            2. Für den gab es bereits RewriteRules.
            3. Der hatte und hat eine geänderte index.php (die wohl auch 'router' ist.)
            4. Womöglich hat diese index.php Cookies gesetzt und ausgewertet.
            5. Womöglich haben weitere Regeln in der .htaccess diese Cookies ausgewertet.

            Woran es jetzt wirklich lag werden wir nicht erfahren, nur meine Vermutung, dass die einzige gezeigte Zeile mit dem Problem nichts zu tun hatte, die hat sich halt mal als richtig erwiesen.

          2. Es war aber auch die Rede von Cache leeren, da könnte doch eine Zusammenhang sein?

            Exakt das würde ich auch vermuten wollen. 301er werden gecached.