Mod_Rewirte Ordner simulieren

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

  • Mod_Rewirte Ordner simulieren

    Ich habe jetzt schon ewig gegoogelt und die Suche benutzt, aber nichts gefunden...

    Ich würde gerne Ordner simulieren mit mod_rewrite:

    www.domain.de/test/ -> index.php?section=test

    Kann mir jemand aufzeigen, wie ich dies anstellen muss? Oder ein Tutorial/Link zum Thema aufzeigen?

  • #2
    Re: Mod_Rewirte Ordner simulieren

    http://httpd.apache.org/docs/1.3/misc/rewriteguide.html
    http://www.modrewrite.de/
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Vielen Dank. Hab dort auf den Seiten mal geschaut, könntest du mir mal bitte ein Beispiel aufschreiben, wie man den simulierten Ordner in die .htaccess Datei einträgt!?

      Kommentar


      • #4
        PHP-Code:
        RewriteRule ^/test/$ index.php?section=test [QSA,L
        nicht getestet, aber so ungefähr. Evtl macht es mehr Sinn dort mit regulären Ausdrücken zu arbeiten, sonst musst du für jede Section eine Zeile in die htaccess schreiben. Also besser sowas in der Art.

        PHP-Code:
        RewriteRule ^/(\w+)/$ index.php?section=$[QSA,L
        Natürlich solltest du dich informieren was \w bei regulären Ausdrücken bedeutet und was das QSA und das L zu bedeuten haben.

        Ausserdem musst du noch ein paar Dinge in die .htaccess Datei schreiben damit die ReqriteEnginge überhaupt benutzt wird.

        Kommentar


        • #5
          Vielen Dank, meine .htaccess-Datei sieht jetzt so aus:

          Code:
          RewriteEngine On
          Options +FollowSymlinks
          RewriteBase /
          
          RewriteRule index.html index.php
          RewriteRule index,(.*).html index.php?section=$1
          RewriteRule ^/(w+)/$ index.php?section=test [QSA,L]
          Aber leider kommt eine Fehlermeldung, wenn ich folgende Adresse aufrufe:

          http://localhost/ngd-systems/test/

          Woran kann dies liegen, evt. am RewriteBase?

          Kommentar


          • #6
            Sorry, aber die Fehlersuche solltest du schon selbst übernehmen können. Ausserdem findest du genauere Infos über die Fehler im Apache-Log.

            Und EIN Fehler nützt hier den leuten wenig. Wie wärs mal mit Eingrenzung und Fehlermeldung.

            Check mal deinen \ (Backslash) vor dem w. kann sein das das Forum das verschluckt hat - was im übrigen nur beweißt, das du dich nicht über Regular Expressions schlau gemacht hast.

            Kommentar


            • #7
              Ich wollte ja deinen Code erst einmal ausprobieren...

              Es kommt die Fehlermeldung: ERROR 505

              Kommentar


              • #8
                Schau bitte nach was das [L] zu bedeuten hat.

                Versuch es erstmal nur mit einer RewriteCond.

                Kommentar


                • #9
                  Ja danke!

                  Hab es jetzt mal so gemacht, weil das ist mir einleuchtender:
                  Code:
                  RewriteRule ^([-a-zA-Z0-9]+)/$ index.php?section=$1
                  Verzeichnis der .htaccess und index.php:
                  http://localhost/ngd-systems/

                  Aber leider werde ich immer auf:
                  http://localhost/xampp/

                  umgeleitet, wenn ich dann bsw. eingebe:
                  http://localhost/ngd-systems/test/

                  Hast du dafür eine Erklärung?

                  Kommentar


                  • #10
                    PHP-Code:
                    RewriteEngine on

                    RewriteRule 
                    ^([-a-zA-Z0-9]+)/$ index.php?section=$[QSA,L

                    Hmm, funktioniert bei mir - sicher das mod_rewrite geladen ist?
                    Prüf die Apache-Errorlogs.

                    Und bitte sag nicht, das du das "RewriteEngine on" vergessen hast - weil dann beweist du schlussendlich das du keinen Blick in die Doku geworfen hast.

                    Kommentar


                    • #11
                      Ja ist geladen, natürlich ist RewriteEngine On eingetragen gewesen, ich verwende ja auch schon eine ganze Zeit mod_rewrite aber noch nie simulierte Ordner. Meine Simulierten .html Dateien funktionieren ja auch bestens...

                      Ich hab echt keine Ahnung woran das liegt!?

                      Kommentar


                      • #12
                        Wie gesagt, hab den von mir geposteten Code getestet. Funktioniert hier. Es muss also irgendne Kleinigkeit sein, die du übersehen hast.

                        Kopier mal meinen Code in eine leere .htaccess Datei und test mal rum - evtl kannste den Fehler damit einkreisen.

                        Kommentar


                        • #13
                          @topicstarter
                          Code:
                          RewriteRule ^([-a-zA-Z0-9]+)/$ index.php?section=$1
                          Also diese Regel macht für micht nicht irgendwie keinen Sinn. Ich bin mir nicht mal so sicher, dass diese Regel überhaupt was matched. Denn du willst den ganzen String (URL) matchen ^bedeuted Anfang $ist Ende. Da du aber in deiner Zeichenklasse keine Slashes drinn hast, wird sicherlich nicht der ganze Pfad gematched. Bestenfalls der erste Ordner, vermutlich aber gar nichts weil der erste Ordner nicht am Ende des Strings steht.
                          Wenn schon der ganze Pfad dann so
                          Code:
                          RewriteRule ^(.*)$ index.php?section=$1
                          //wenn du nur den ersten Ordner willst
                          RewriteRule ^([a-zA-Z0-9_-]*)/ index.php?section=$1
                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar

                          Lädt...
                          X