Ankündigung

Einklappen
Keine Ankündigung bisher.

php Datei URL umschreiben

Einklappen

Neue Werbung 2019

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

  • php Datei URL umschreiben

    Hallo,

    ich probiere nun schon seit 4 Stunden herum und habe alles auf den ersten vier Seiten von Google durch.

    Ich habe php Scripte, die im Unterordner cs liegen.

    /cs/index.php
    von dort gibt es ein Formular, welches mit der URL einen Parameter an die nächste php gibt, also geht es weiter mit
    /cs/index2.php?gender=women
    und weiter zu
    /cs/index3.php?antwort=ja
    usw...

    Ich würde jetzt gerne die URLs so umschreiben, dass zB /cs/index2.php?gender=women zu /cs/women wird.

    Ich bekomme das aber einfach nicht hin, alles was ich zu hataccess finden konnte funktioniert nicht.
    Selbst ein einfaches umschreiben von php in html funktioniert nicht:
    RewriteEngine on RewriteRule ^(.*)\.htm$ /cs/$1.php
    Mod_Rewrite ist aktiviert, die Scripte liegen in einem Unterordner (/cs/) von einem Shopsystem.
    Die htaccess liegt im Root-Verzeichnis.


    Wer kann mir helfen und vielleicht einen ersten Denkansatz geben, wie gesagt, alle Snippets die man über Google findet funktionieren nicht und ich weiss nicht wo das Problem liegt.

    Vielen Dank im voraus!



  • #2
    Mach die Umleitung doch einfach in PHP. Ich würde keine Routinglogik in eine htaccess auslagern, sondern in der Anwendung behalten.

    Kommentar


    • #3
      Hi, gerne. Nur wie stelle ich das an?

      Kommentar


      • #4
        Und es ist keine Umleitung, sondern die URLs sollen umgeschrieben werden.

        Kommentar


        • #5
          Zitat von Meister85 Beitrag anzeigen
          Und es ist keine Umleitung, sondern die URLs sollen umgeschrieben werden.
          Damit das auch beim Browser ankommt, musst du umleiten.

          PHP-Code:
          header('Location: http://example.org/cs/' urlencode($_GET['gender'])); 

          Kommentar


          • #6
            Wo soll das eingebunden werden? Ich habe das mal in die php´s geschrieben, da passiert nichts.

            Kommentar


            • #7
              Zitat von Meister85 Beitrag anzeigen
              Wo soll das eingebunden werden? Ich habe das mal in die php´s geschrieben, da passiert nichts.
              Dort, wo das Formular verarbeitet wird.

              Und "passiert nichts" ist keine brauchbare Fehlerbeschreibung.

              Kommentar


              • #8
                Ich habe dies über dem Formular eingebunden.

                Mit der URL passiert aber nichts.

                Kommentar


                • #9
                  Zitat von Meister85 Beitrag anzeigen
                  Ich habe dies über dem Formular eingebunden.

                  Mit der URL passiert aber nichts.
                  Ist Error-Reporting am Server aufgedreht? Schon mal ins Error-Log geschaut?

                  Kommentar


                  • #10
                    Zitat von Meister85 Beitrag anzeigen
                    Ich würde jetzt gerne die URLs so umschreiben, dass zB /cs/index2.php?gender=women zu /cs/women wird.
                    Nur nochmal zur Wiederholung: Das URL-rewriting funktioniert genau anders herum.

                    Der Benutzer gibt die URL "example.com/cs/women" in den Browser ein, das rewriting macht daraus "example.com/cs/index2.php?gender=women".
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Zitat von lstegelitz Beitrag anzeigen
                      Der Benutzer gibt die URL "example.com/cs/women" in den Browser ein, das rewriting macht daraus "example.com/cs/index2.php?gender=women".
                      Oder im besten Fall gar nichts, sondern es wird einfach nur ein zentraler Einstiegspunkt (zB. index.php) aufgerufen und die PHP-Anwendung entscheidet selber, was sie tut. Ich halte nichts davon Teile der Anwendungslogik in ein Rewriting auszulagern. Es wird dann schnell unübersichtlich, die Fehlersuche gestaltet sich schwieriger und man kommt schnell an die Grenzen, wenn mal ein wenig Dynamik gefordert ist.

                      Kommentar


                      • #12
                        Definitiv richtig. Dennoch bedarf es eines "globalen" Rewritings, damit das funktioniert (nach dem Motto: leite ALLES [ausser physisch existenten Dateien/Verzeichnisse] auf index.php um)

                        Hier ist ein Beispiel (entnommen aus cakePHP) für ein solches Rewriting auf ein zentrales Script:
                        Code:
                        <IfModule mod_rewrite.c>
                            RewriteEngine On
                            RewriteCond %{REQUEST_FILENAME} !-d
                            RewriteCond %{REQUEST_FILENAME} !-f
                            RewriteRule ^(.*)$ index.php [QSA,L]
                        </IfModule>
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar

                        Lädt...
                        X