Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] htaccess mod_rewrite Zweit-URL

Einklappen

Neue Werbung 2019

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

  • [Erledigt] htaccess mod_rewrite Zweit-URL

    Hi,

    ich suche eine Methode, mit der ich mit der RewriteEngine statt umzuleiten, eine "Zweit-URL" vergeben kann, sprich:

    Vorgabe: /foo/index.php?p=start
    Zweit-URL: /foo/

    Vorgabe: /foo/index.php?p=speisen
    Zweit-URL: /foo/speisen/

    Beim Aufruf der vorgegebenen URL soll man auf die Zweit-URL umgeleitet werden.

    Habe einige Kurztutorials bereits gelesen, allerdings geht es dabei immer um Weiterleitungen, was ich ja nicht vorrangig suche.

    Kann mir jemand nen Ansatz geben bzw. eine Quelle, woraus ich meine Lösung coden kann?

    Danke im Voraus,
    LG Paeisi


  • #2
    Zitat von Paeisi Beitrag anzeigen
    ich suche eine Methode, mit der ich mit der RewriteEngine statt umzuleiten, eine "Zweit-URL" vergeben kann
    Beim Aufruf der vorgegebenen URL soll man auf die Zweit-URL umgeleitet werden.
    Statt umzuleiten, willst du also umleiten - a-ha.

    Kann mir jemand nen Ansatz geben bzw. eine Quelle, woraus ich meine Lösung coden kann?
    Liefere du uns doch bitte erst mal eine Problembeschreibung, aus der man dein Problem erkennen kann.

    Kommentar


    • #3
      Hi,

      hab ich mich wohl falsch ausgedrückt.

      Beispiel:

      Wenn ich meineseite.de/de/impressum/ aufrufe, möchte ich den Inhalt von meineseite.de/foo/index.php?p=impressum angezeigt bekommen, ohne, dass ich auf meineseite.de/foo/index.php?p=impressum lande. Die URL soll sich also nicht ändern.

      Rufe ich aber meineseite.de/foo/index.php?p=impressum auf, möchte ich bei meineseite.de/de/impressum/ landen.

      Kommentar


      • #4
        ersteres bekommst Du mit [L] hin. Zweiteres sieht mir arg nach Endlosschleife aus.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Hi nikosch,

          was bewirkt denn das [L]? Ich habe dafür keine Beschreibung im www finden können.

          Naja es ist so gedacht, von meineseite.de/foo/index.php?p=impressum nach meineseite.de/de/impressum/ zu leiten und das wars. Da kann doch keine Endlosschleife entstehen, denn meineseite.de/de/impressum/ soll ja nicht wieder zu meineseite.de/foo/index.php?p=impressum zurückleiten. Wenn das aber dennoch nicht geht, kann ich auch auf die Umleitung verzichten.

          LG

          Kommentar


          • #6
            was bewirkt denn das [L]? Ich habe dafür keine Beschreibung im www finden können.
            Das hat sich auch bestimmt noch niemand gefragt.

            http://www.google.de/search?q=mod_rewrite+[L]
            http://hallophp.de

            Kommentar


            • #7
              Bitte nutze künftig example.com/.net/.org für Beispiele, die sind extra dafür da.

              Zitat von Paeisi Beitrag anzeigen
              Wenn ich example.com/de/impressum/ aufrufe, möchte ich den Inhalt von example.com/foo/index.php?p=impressum angezeigt bekommen, ohne, dass ich auf example.com/foo/index.php?p=impressum lande. Die URL soll sich also nicht ändern.
              Das ist das normale Verhalten von mod_rewrite, wenn du nicht explizit dafür sorgst, dass ein Redirect stattfindet.

              Rufe ich aber example.com/foo/index.php?p=impressum auf, möchte ich bei example.com/de/impressum/ landen.
              Fraglich, ob es sich lohnt, das mit mod_rewrite zu machen.
              Anfragen auf diese (Art von) Adresse werden wohl selten sein, wenn du solche URLs nicht explizit verlinkst. Könnte man also auch im Script abfangen, und dann von dort aus per header umleiten.

              Wenn du das mit mod_rewrite machen willst, brauchst du eine RewriteCond, um den Query-String zu überprüfen. Und eine Möglichkeit, Endlos-Umleitungen zu unterbinden, musst du dir auch noch suchen.

              Kommentar


              • #8
                Das hat sich auch bestimmt noch niemand gefragt.
                Ach ja, hatte vergessen, dass man sowas von Geburt an weiß.

                Bitte nutze künftig example.com/.net/.org für Beispiele, die sind extra dafür da.
                Alles klar, werd ich künftig tun.

                Also, ich habe mich jetzt daran versucht:

                DirectoryIndex index.php?p=start
                RewriteEngine On
                RewriteBase /friedrich-7
                RewriteRule ^(.*)/$ index.php?p=$1 [L]

                Das klappt. Aber jetzt stimmen alle Pfade nicht mehr, ist das normal?
                Doch ich kann die Pfade in der index.php ja nicht anpassen, denn index.php?p=start soll zum DirectoryIndex werden, demnach würden da die Pfade nicht stimmen.

                Was kann ich tun?

                Kommentar


                • #9
                  Zitat von Paeisi Beitrag anzeigen
                  Ach ja, hatte vergessen, dass man sowas von Geburt an weiß.
                  Wenn man mit einem bestimmten Stück Software arbeiten will, dann sollte es eine Selbstverständlichkeit sein, dass man sich auch mit der Doku dazu befasst.

                  http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

                  Aber jetzt stimmen alle Pfade nicht mehr
                  Bitte beschreibe präzise, was das Problem ist.

                  Kommentar


                  • #10
                    okay, gut...

                    Also ich habe die index.php, in der die Datensätze für 6 verschiedene get-parameter hinterlegt sind.

                    Die URL wäre mit den parametern somit unschön. Deshalb möchte ich statt
                    example.com/index.php?p=start
                    example.com/

                    und für die anderen 5 Datensätze möchte ich jeweils ein Unterverzeichnis simulieren
                    ( bspw. example.com/kontakt/)

                    Das funktioniert ja jetzt auch, aber durch das Unterverzeichnis in der URL müsste ich alle Pfade in der index.php mit einem "../" versehen. Das geht ja aber nicht, da sonst bei der Startseite alle Pfade falsch wären.

                    Was kann ich da tun?

                    Kommentar


                    • #11
                      Zitat von Paeisi Beitrag anzeigen
                      Das funktioniert ja jetzt auch, aber durch das Unterverzeichnis in der URL müsste ich alle Pfade in der index.php mit einem "../" versehen. Das geht ja aber nicht, da sonst bei der Startseite alle Pfade falsch wären.

                      Was kann ich da tun?
                      In Bezug auf die Domainwurzel referenzieren - /

                      http://de.selfhtml.org/html/allgemei...en.htm#absolut

                      Kommentar


                      • #12
                        Cool, danke, läuft!

                        Kommentar

                        Lädt...
                        X