Ankündigung

Einklappen
Keine Ankündigung bisher.

mod_rewrite: Wenn Eingabe ohne .html, dann setze .html dazu

Einklappen

Neue Werbung 2019

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

  • mod_rewrite: Wenn Eingabe ohne .html, dann setze .html dazu

    Hallo PHP-Gemeinde,

    ich brauche mal kurz Euren Rat:

    Ein Kunde hat falsche URLs auf zahlreiche Flyer gedruckt, da er z.B. anstatt www.domain.de/seite.html -> www.domain.de/seite angegeben hat.

    Kann man das für alle Eingaben, bei denen z.B. das .html vergessen wurde, wieder ausbügeln?

  • #2
    Ja. Lies ein beliebiges Tutorial zu mod_rewrite
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Ich sitze seit zwanzig Minuten dran, komme aber mit keiner Regel dort an mein Ziel und weiß nicht weiter. Daher meine Anfrage hier, ob mir das jemand vielleicht kurz zeigen kann.

      Kommentar


      • #4
        ein forgeschrittener programierer gibt doch nicht nach zwanzig minuten auf

        schon gar nicht, wenn das thema hier zig mal duchdiskutiert wurde, mehr generatoren dafür im netz zu finden sind, als ich haare auf dem kopf habe(nein, ich hab keine glatze), und bekannt ist, dass einem hier bei code schnipsel meist auch geholfen wird.

        Kommentar


        • #5
          Zitat von moma Beitrag anzeigen
          ein forgeschrittener programierer gibt doch nicht nach zwanzig minuten auf
          Nein, mit Sicherheit nicht. Aber die Zeit drängt, da die Flyer schon im Umlauf sind und ich nicht ewig daran herumdoktorn kann. Aktuell habe ich das hier:

          Code:
          RewriteRule ^(.*)/([^.]+)/$ /$1/$2.html?rw=1 [QSA,L]
          RewriteCond %{QUERY_STRING} !^rw=1
          RewriteRule ^(.*)/([^.]+)\.html$ /$1/$2/ [R=301,L]
          Das scheint aber bei meinem Fall nicht zu funktionieren, da es aus .html-Dateien Ordner simuliert. Ist also eigentlich falsch herum.

          Kommentar


          • #6
            Code:
            RewriteCond %{QUERY_STRING} !\.html^
            RewriteCond %{QUERY_STRING} !$/^
            RewriteRule ^(.*)$ $1.html [R=301,L]
            So in etwa
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              Das wirft mir www.domain.de/seite.html.html.html.html.... aus.

              Kommentar


              • #8
                Zitat von Dublay Beitrag anzeigen
                wenn das nicht geht(3. treffer in meiner suchmaschine), musste wohl rewrite-log anschalten.:

                http://stackoverflow.com/questions/1...he-mod-rewrite

                Kommentar


                • #9
                  Das hat leider nicht funktioniert. Ich kann das rewrite-log auch nicht anschalten, da es ein Hosting-Paket ist.

                  Kommentar


                  • #10
                    was ist deine erste assotiation zum wort entwicklungsumgebung..
                    und komm mir jetzt nicht mit zeitdruck, selbst schuld wenn die qa von eurem flyer versagt hat.

                    Kommentar


                    • #11
                      Eine tolle Aussage. Es sind nicht unsere Flyer, sondern die vom Kunden.

                      Ich hatte freundlich um Hilfe gefragt, weil ich nicht weiterkomme und mir die Zeit davonläuft.

                      Eine Entwicklungsumgebung ist hier nicht im Einsatz und wie schon angedeutet fehlt mir die Zeit, hier gerade eine aufzusetzen.

                      Danke Euch trotzdem. Ich versuche es weiter mit den o.g. Ansätzen.

                      Kommentar


                      • #12
                        Zitat von tkausl Beitrag anzeigen
                        Code:
                        RewriteCond %{QUERY_STRING} !\.html^
                        RewriteCond %{QUERY_STRING} !$/^
                        RewriteRule ^(.*)$ $1.html [R=301,L]
                        So in etwa
                        Das ist schon ein bissel komplett falsch. %{QUERY_STRING} ist das was nach dem ? kommt und auch mit der Url wäre die Funktionalität sehr fragwürdig. Alles was nicht auf .html endet wird um .html erweitert, also auch .jpg zu .jpg.html...

                        Ein einfaches
                        PHP-Code:
                        RewriteRule ^seiteseite.html 
                        sollte ausreichen.

                        Kommentar


                        • #13
                          Zitat von erc Beitrag anzeigen
                          Alles was nicht auf .html endet wird um .html erweitert, also auch .jpg zu .jpg.html...
                          Code:
                          RewriteCond %{REQUEST_FILENAME}.html -f
                          nur wenn es jpg.html auch gibt oder?

                          Kommentar


                          • #14
                            Ich habe es jetzt mit

                            Code:
                            RedirectPermanent /seite http://www.domain.de/seite.html
                            gelöst. Nicht optimal, aber für die Aktion reicht es. Danke nochmals für die relevanten Beiträge!

                            Kommentar


                            • #15
                              Ein Kunde hat falsche URLs auf zahlreiche Flyer gedruckt, da er z.B. anstatt www.domain.de/seite.html -> www.domain.de/seite angegeben hat.
                              Nur so der Vollständigkeit halber.. Falls es nicht geklappt hätte, oder zu wenig Zeit, der kein mod_rewrite zur Verfügung steht (auch wenn hier explizit danach gefragt wurde) im worst case das Unterverzeichnis "seite" im root anlegen, dort eine index.php reinknallen und darin auf die richtige [root]/seite.html umleiten. Geht im Zweifelsfall auch mit einer index.html und ohne PHP mit einer "meta-Weiterleitung" statt Header(Location..). Wollte es nur erwähnt haben.
                              The string "()()" is not palindrom but the String "())(" is.

                              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

                              Lädt...
                              X