Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mod_rewrite mal ja, mal nein, je nach Domain-Verzeichnisname

Einklappen

Neue Werbung 2019

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

  • [Erledigt] mod_rewrite mal ja, mal nein, je nach Domain-Verzeichnisname

    Also ich habe folgendes Ziel:

    Wenn ich die URL example.com/?s=details:1:2 eingebe, erhalte ich genau das, was ich möchte. Intern ruft das Index-Script dann die Datei: example.com/offline/details/page.php?id=1:2 auf.

    Im Browser soll die Adresse dann so aussehen: domain.de/details/1/2

    Er darf aber wirklich nur dann den rewrite einsetzen, wenn das erste Verzeichnis details ist. Kann mir da jemand helfen? Ich habe nämlich mit mod_rewrite NULL Erfahrung. Und passende Beispiele, da blicke ich ehrlich gesagt noch nicht durch.

    Für mich ist wichtig, die Argumentation zu verstehen, die dahinter steckt. Dafür brauche ich aber Beispiele, die meiner Server-Konfig entsprechen. Sonst bekomme ich das nicht in den Schädel.

    Also noch mal ganz kurz: example.com/details/1/2 muss auf
    example.com/?s=details:1:2 umgestellt werden
    und darf dies nicht tun, wenn example.com/img/profil.php?id=1:2 abgerufen wird.


  • #2
    1.)
    gehört dir domain.de ? nicht, dann nutze bitte example.com; verbessern wre da gut, da die
    leute von domain.de sonst ärger machen (könnten).
    2.)
    Für mich ist wichtig, die Argumentation zu verstehen, die dahinter steckt. Dafür brauche ich aber Beispiele, die meiner Server-Konfig entsprechen. Sonst bekomme ich das nicht in den Schädel.
    gibts in der docu, und auch im forum, die letzten tage in dem unterforum.
    auch generatoren und tester.

    Kommentar


    • #3
      Ich blicke aber bei den Dokus nicht wirklich durch. Die hauen einem immer ganze Befehlsketten um die Ohren, ohne auf die einzelnen Bestandteile einzugehen.

      Da stehen dann 70 Zeichen in einer Zeile, darunter: Das bewirkt das und das. Aber warum es das bewirkt, steht nicht dabei. So sitze ich hier vor 200 Beispielen, die alle nicht tun, was ich möchte, aber so umstellen, dass sie tun, was ich möchte, kann ich nicht, weil ich den Sinn des Ganzen Befehls nicht in einzelteile unterteilen kann.

      Ich habe mal etwas versucht:
      RewriteRule ^magazin$ /index.php?s=magazin
      Aber das einzige, was ich nach nem Neustart vom Apache sehe, ist die Fehlerseite. Und ich rufe: example.com/magazin auf.

      Wird sicher noch lustiger, wenn ich zwei Unterverzeichnisse an Magazin dran hänge, die dann hinter ?s=magazin mit vorgestelltem Doppelpunkt übergeben werden sollen. Also so: /magazin/1/2 soll so werden: /index.php?s=magazin:1:2

      Allerdings muss dass auch klappen, wenn ich nur magazin angebe und nichts weiter. Oder auch nur das erste Unterverzeichnis (1) angebe.

      Und da blicke ich echt überhaupt nicht durch.

      Kommentar


      • #4
        darf dies nicht tun, wenn example.com/img/profil.php?id=1:2 abgerufen wird.
        rewrite condition, kriegste hin?

        und die rule?
        mal einfach und NICHT bulletproof:
        RewriteRule ([0-9])/([0-9]) /index.php?magazin:$1:$2
        have fun @
        http://martinmelin.se/rewrite-rule-tester/

        Kommentar


        • #5
          Hier eine nette Zusammenfassung, weiter unten werden auch die Conditions behandelt: https://www.addedbytes.com/articles/...for-beginners/

          LG
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            [QUOTE=moma;833563]rewrite condition, kriegste hin?
            rewrite condition hab ich gerade versucht zu ergoogeln, aber nichts wirklich klares bei heraus gekommen. Stehe also immer noch wie ein Ochse vorm Berg.

            und die rule?
            RewriteRule ([0-9])/([0-9]) /index.php?s=magazin:$1:$2
            klappt nicht, wie ich das gerne hätte. Aber wirklich durchblicken tu ich da noch nicht...

            Mal grundlegend gefragt, wozu ist direkt nach dem RewriteRule dieses Zeichen: ^

            Und was bewirkt [0-9]? Ist das für die Zeicheninhalte nur von 0 bis 9? Wie erweitere ich das um das Alphabet? ([0-9a-zA-Z]) oder so ([0-9][a-z][A-Z]), so dass wirklich alle Zeichen in dem Verzeichnis-Namen vorkommen können?

            Muss ich für jedes Unterverzeichnis eine Rule anlegen?

            RewriteRule ^/magazin /index.php?s=magazin
            RewriteRule ^/magazin/([0-9]) /index.php?s=magazin:$1
            RewriteRule ^/magazin/([0-9])/([0-9]) /index.php?s=magazin:$1:$2

            Wäre das so korrekt? Weil, dass zerschießt mir die CSS-Klassen in den Unterverzeichnissen.

            Kommentar


            • #7
              kennst dich nicht sooo gut aus mit regular expressions?

              http://httpd.apache.org/docs/2.2/rewrite/intro.html

              Kommentar


              • #8
                Zitat von moma Beitrag anzeigen
                kennst dich nicht sooo gut aus mit regular expressions?

                http://httpd.apache.org/docs/2.2/rewrite/intro.html
                Ich kenne mich ÜBERHAUPT nicht mit englisch aus. *lach*
                Bin ja froh, dass ich der deutschen Sprache mächtig bin.

                Kommentar


                • #9
                  wenn es "nur" um RegEx geht kann ich dir eigentlich nur https://www.danielfett.de/internet-u...ere-ausdruecke empfehlen.
                  Damit habe ich es mir angeeignet.
                  Sind zwar nur die Grundlagen aber darauf lässt sich ja dann aufbauen

                  Kommentar


                  • #10
                    jo --- lacl lach lach....
                    http://tiny.cc/zdp6sx

                    Kommentar


                    • #11
                      Ich glaub, ich geb es auf... Hab nun den ganzen Tag damit verbracht, meinem Webserver beizubringen, was er zu tun hat... Aber scheinbar sprechen wir nicht die selbe Sprache.

                      Wenn sich nicht jemand barmherzig zeigt, lasse ich das mit dem "bei Suchmaschinen gefunden zu werden" einfach sein und warte, bis das Projekt Geld einbringt. Kann sich nur noch um 100 Jahre handeln.

                      Kommentar


                      • #12
                        Also... Nach langem hin und her, viel Hirnschmalz auslassen und vielen Tests, hab ich nun mein Ziel erreicht, ohne zu wissen, was ich genau mache.

                        Hier das Ergebnis meiner Arbeit:
                        Code:
                        RewriteEngine On
                        RewriteRule ^/s/(.*)/(.*)/(.*)$ /index.php?s=$1:$2:$3 [L]
                        RewriteRule ^/s/(.*)/(.*)$ /index.php?s=$1:$2 [L]
                        RewriteRule ^/s/(.*)$ /index.php?s=$1 [L]
                        Und das tut nun genau, was ich möchte.

                        Danke an alle, die mir so tatkräftig mit Rat und Tat zur Seite gestanden haben.

                        Kommentar

                        Lädt...
                        X