mod-rewrite index.php umleiten

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

  • mod-rewrite index.php umleiten

    Hallo

    Auf meinem Webserver sind im Moment folgende Rewrite Regeln aktiv:
    Code:
    RewriteRule ^([^/.]+)/?$ index.php?contr=$1 [L]
    RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?contr=$1&action=$2 [L]
    Es funktioniert auch soweit alles, allerdings möchte ich den Aufruf der Seite www.example.com über www.example.com/index.php verhindern bzw. dies auf www.example.com umleiten.

    Ich habe es so versucht:
    Code:
    RewriteCond %{IS_SUBREQ} false
    RewriteRule ^index.php$ http://www.example.com/ [L]
    Das funktioniert auch, der Aufruf mit index.php wird auf die reine Domain umgeleitet. Leider sehen die ursprünglichen URLS jetzt nicht mehr aus wie vorher: www.example.com/eintrag/neu/ sondern so: www.example.com?contr=eintrag&action=neu

    Wie kann ich die Umleitung bei Aufruf der index.php ändern, damit die ursprünglichen URLS erhalten bleiben?

  • #2
    Zitat von h3llo Beitrag anzeigen
    Leider sehen die ursprünglichen URLS jetzt nicht mehr aus wie vorher: www.example.com/eintrag/neu/ sondern so: www.example.com?contr=eintrag&action=neu
    Ich kann da gerade den Zusammenhang nicht erkennen ...

    Die „ursprünglichen URLs“, die gibst du doch in deinem HTML-Code vor, die haben doch nichts damit zu tun, wie anschließend umgeschrieben wird?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Die Links sehen natürlich genauso aus wie vorher nach dem Schema: www.example.com/eintrag/neu/

      Nur bleibt diese URL nach dem Aufruf nicht mehr in der Adresszeile des Browsers stehen, sondern es erscheint dort seit Einbau der index.php Umleitung http://www.example.com?contr=eintrag&action=neu

      Kommentar


      • #4
        Na dann hast du wohl einen Redirect eingebaut, der mehr macht, als du eigentlich willst ... (Obwohl ich nicht verstehe, wieso der Original-Querystring angehängt wird, wenn du das nicht explizit angegeben hast.)

        Hast du überhaupt verifiziert, ob deine IS_SUBREQ-Abfrage das gewünschte macht?
        Soweit ich weiß bezieht sich das nämlich nur auf Subrequests durch andere Apache-Module; ob man sich innerhalb des Rewriting-Prozesses befindet, kann man damit aber m.W. nicht feststellen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Wenn ich die IS_SUBREQ-Abfrage rausnehme, wird im loop weitergeleitet, so gesehen scheint diese schon das gewünschte zu machen.

          Ich suche also eine Möglichkeit, den direkten Zugriff auf die index.php abzufangen, ohne dass die Angaben in der Adresszeile dadurch geändert werden.

          Kommentar

          Lädt...
          X