Suchmaschinenfreundliche URLs, Dateien im selben Verzeichnis

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

  • Suchmaschinenfreundliche URLs, Dateien im selben Verzeichnis

    Wenn ich mir
    http://www.php-resource.de/forum/sho...&threadid=8959
    durchlese, dann verstehe ich es so, daß pro Verzeichnis alle Anfragen nur auf eine einzige Datei umgeleitet werden.

    Nun habe ich zur Zeit im selben Verzeichnis vier Dateien, die alle mit übergebenen GET-Variablen operieren. Zur Veranschaulichung:
    discography.php?variable1=x&variable2=y
    album.php?variable3=z
    song.php?variable4=3
    biography.php?variable5=20

    Damit ich alle in der Form
    dateiname.php/variable_x/bla/variable_y/blubb/
    darstellen kann, muß ich diese Dateien alle in unterschiedliche Verzeichnisse legen und diese jeweils mit einer individuell angepaßten .htaccess versehen, oder kann ich irgendwie alle im selben Verzeichnis lassen und nur die .htaccess etwas komplexer gestalten?

  • #2
    dann verstehe ich es so, daß pro Verzeichnis alle Anfragen nur auf eine einzige Datei umgeleitet werden.
    das kann man so machen. muss man aber nicht.

    Aber was hat das ganze mit PHP zu tun?

    Kommentar


    • #3
      Weil bis auf .htaccess die betroffenen Dateien in PHP geschrieben sind und ich dachte, daß ich vielleicht auch dort etwas ändern müsse, z.B. beim Auslesen des URL.

      Auf deine Frage hin habe ich mir nochmals die Beschreibungen der anderen Unterforen angesehen, und mir schien keins passender zu sein. Dir anscheinend schon, danke fürs Verschieben.

      Kommentar


      • #4
        teste das mal hier .

        aber bitte fragen dazu nicht in dem anderen thread posten, sondern HIER.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich gebe zu, daß ich mir deinen Thread vorhin auch schon durchgelesen hatte, aber die Syntax noch nicht durchschaue. Aber wenn ich deine Vorschläge für die .htaccess richtig deute, dann werden doch die Anfragen alle in dieselbe Datei, nämlich auswertung.php, umgeleitet, oder? Kannst du mir eine Seite empfehlen, in der solche Dinge wie die Bedeutung von "(.*)" erklärt sind?

          Kommentar


          • #6
            man kann umleiten wohin man möchte. ich habe es der einfachheit halber immer auf die gleiche datei umgeleitet.

            im übrigen praktiziere ich das auch weiterhin, sodass ich nur noch eine steuerdatei in php habe.

            und die dinger alá (.*) nennt man regex. dazu findest du auch bei unseren tuts eine kleine erklärung.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Um bei meinem Beispiel von oben zu bleiben, nehmen wir an, die Struktur bleibt so:
              discography.php?variable1=x&variable2=y
              album.php?variable3=z

              Dann müßten ja die URLs wie folgt aussehen:
              http://meinedomain/discography/x/y/
              http://meinedomain/album/z/

              Und die .htaccess sollte dann diesen Inhalt haben?

              Code:
              RewriteEngine on
              RewriteRule ^discography/(.*)/(.*)/$         /discography.php?variable1=$1&variable2=$2
              RewriteRule ^album/(.*)/$                    /album.php?variable3=$1

              Kommentar


              • #8
                ja
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Eine gewisse Problematik tritt auf, wenn ich wirklich die Zeile
                  Code:
                  RewriteRule ^discography/(.*)/(.*)/$         /discography.php?variable1=$1&variable2=$2
                  verwende, da die Bezeichnung "discography" sowohl links wie rechts steht, die Werte der Parameter werden dann nicht ausgelesen. Nehme ich aber z.B.
                  Code:
                  RewriteRule ^disc/(.*)/(.*)/$         /discography.php?variable1=$1&variable2=$2
                  dann geht es.

                  Kommentar


                  • #10
                    schalte mal das multiview im apache aus.

                    das hatten wir aber kürzlich auch im forum gehabt. ich nehme nciht an, dass du gesuch hast. oder?
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Kann ich denn als Kunde meines Providers irgendwo an den Apache-Einstellungen was verändern? Meines Wissens geht das zumindest bei all-inkl.com nicht.

                      Edit: Auf meinem heimischen Apache funktioniert wenigstens alles wunderbar. Auf jeden Fall schon mal vielen Dank für die Geduld!

                      Edit2: Hier im Forum gibt es als Suchergebnis nach dem Wort "multiview" nur diesen meinen Thread.
                      Zuletzt geändert von Maschenka; 04.08.2004, 15:50.

                      Kommentar


                      • #12
                        wenn ich nach multiview* suche, bekomme ich mehr.

                        http://www.php-resource.de/forum/sea...der=descending


                        in der .htaccess trage mal das hier noch ein


                        Code:
                        Options -MultiViews
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Jo, so klappt's auch mit dem Provider, super!

                          Bei mir habe ich jetzt lokal festgestellt, daß anscheinend mehr als eine Variable nicht auslesbar ist:

                          RewriteRule ^album/(.*)/(.*)/$ /album.php?cat=$1&album=$2

                          ergibt für z.B. http://192.168.1.100/album/e/2/ folgendes Ergebnis:

                          parameter 1: ealbum/e/2/album=2
                          parameter 2: album - nicht vorhanden ...

                          Hast du da vielleicht auch noch ein aussagekräftiges Stichwort, mit dem ich mich rumschlagen kann?

                          Kommentar


                          • #14
                            Original geschrieben von Maschenka
                            parameter 1: ealbum/e/2/album=2
                            das der komplette request-URI darin nochmal auftaucht, macht mich stutzig.

                            könte evtl. darauf hindeuten, dass er mehr als einmal das rewriten durchläuft.
                            probier mal mit einem anderen scriptname als album, also


                            RewriteRule ^album/(.*)/(.*)/$ /test.php?cat=$1&album=$2


                            und darin dann noch mal die GET-parameter zur kontrolle ausgeben lassen.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              test.php:
                              PHP-Code:
                              <?php
                              print_r
                              ($_GET);
                              echo 
                              "<BR>";
                              echo 
                              "Variable cat: ",($_GET['cat']);
                              echo 
                              "<BR>";
                              echo 
                              "Variable album: ",($_GET['album']);
                              ?>
                              Angezeigt wird folgendes Ergebnis:

                              Array ( [cat] => ealbum/e/4/album=4 )
                              Variable cat: ealbum/e/4/album=4
                              Variable album:

                              Kommentar

                              Lädt...
                              X