Gast01: Umleitung in .htacess

Hallo ich wollte mit

RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=301]

alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?

  1. hallo

    Hallo ich wollte mit

    RewriteEngine On
    RewriteCond %{REQUEST_URI} (.*)
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=301]
    
    

    alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?

    Daran, dass du auch www.meine-Seite.test/ auf www.meine-Seite.test/ umleitest und eine nette Endlosschleife erzeugst.

    Und mit 301 weist du den Brauser an, das auch permanent so zu machen.

    Nutze 302 für testzwecke.

    --
    Neu im Forum! Signaturen kann man ausblenden!
    1. Hallo,

      Daran, dass du auch www.meine-Seite.test/ auf www.meine-Seite.test/ umleitest und eine nette Endlosschleife erzeugst.

      Und wie vermeide ich die fehlerhafte Umleitung?

      1. Hello,

        indem Du nur umlitest, was NICHT wie das Ziel aussieht

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.
        1. Das "was" weiß ich wohl, nicht aber das "wie"! Und da ich die Umleitung jetzt haben sollte und nicht erst nach einer intensiveren Beschäftigung mit dem Thema hatte ich hier konkrete Hile erhofft.

          1. hallo

            Das "was" weiß ich wohl, nicht aber das "wie"! Und da ich die Umleitung jetzt haben sollte und nicht erst nach einer intensiveren Beschäftigung mit dem Thema hatte ich hier konkrete Hile erhofft.

            Bevor wir hier kaputte Lösungen wervieren erlaube ich mir die Frage:

            warum www ?

            --
            Neu im Forum! Signaturen kann man ausblenden!
            1. Hallo, www muss nicht sein.

              1. hallo

                Hallo, www muss nicht sein.

                Also, und was willst du nun?

                alle Aufrufe meine-Seite.test/irgendwas umleiten zu meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?

                Ich hoffe du siehst, wie sinnfrei dein Anliegen ist.

                Was willst du wirklich erreichen?

                --
                Neu im Forum! Signaturen kann man ausblenden!
                1. Hallo, ich weiß nicht, wie ich es noch erklären soll? www.meine-seite.test/irgendwas ==> www.meine-seite.test oder www.meine-seite.test/ meine-seite.test/irgendwas ===> meine-seite.test oder meine-seite.test/

                  Ob nun am Ende das www dabei ist, ist mir egal.

                  1. hallo

                    Hallo, ich weiß nicht, wie ich es noch erklären soll? www.meine-seite.test/irgendwas ==> www.meine-seite.test oder www.meine-seite.test/ meine-seite.test/irgendwas ===> meine-seite.test oder meine-seite.test/

                    Ob nun am Ende das www dabei ist, ist mir egal.

                    und was soll mit index.html geschehen?

                    --
                    Neu im Forum! Signaturen kann man ausblenden!
                    1. Hallo

                      und was soll mit index.html geschehen?

                      Weg damit!

                      1. hallo

                        Hallo

                        und was soll mit index.html geschehen?

                        Weg damit!

                        und wohin soll dann umgeleitet werden?

                        --
                        Neu im Forum! Signaturen kann man ausblenden!
                        1. Hallo

                          und wohin soll dann umgeleitet werden?

                          meine-seite.test oder www.meine-seite.test

                          1. hallo

                            Hallo

                            und wohin soll dann umgeleitet werden?

                            meine-seite.test oder www.meine-seite.test

                            also gut. Der Browser sendet also ein /

                            was soll dann geschehen?

                            --
                            Neu im Forum! Signaturen kann man ausblenden!
                            1. Gewünscht war "alles nach dem ...meine-domain.test zu entfernen". Nach meinem Kenntnisstand wird dann je nach Einstellungen index.html, index.shtml, index.php ..... aufgerufen.

                              1. hallo

                                Gewünscht war "alles nach dem ...meine-domain.test zu entfernen". Nach meinem Kenntnisstand wird dann je nach Einstellungen index.html, index.shtml, index.php ..... aufgerufen.

                                Nicht, wenn du global alles umleitest.

                                Werde dir klar, was du alles nicht umleiten darfst. .css, js, /, index.php im Grunde alles was auf existierende Dateien oder directories verweist.

                                --
                                Neu im Forum! Signaturen kann man ausblenden!
                                1. Ich gebs auf!

  2. Hello,

    bevor Du verzweifelst. Vielleicht hilft Dir meine "Standardumleitung"

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f   
    #RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l
    
    RewriteRule (.*) index.php/$1 [QSA]
    

    Da würde jetzt jede Anfrage, für die es keine echte Ressource gibt, auf die index.php umgeleitet und der Query-String wieder angehängt.

    Im PHP-Script kann dann mit

    if(isset($_SERVER['REDIRECT_URL']))
    {
       # ...
    }
    

    abgefragt werden, welche (nicht vorhandene) Ressource der Requestor angefragt hat.

    wenn du nur eine

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  3. hi,

    alle Aufrufe www.meine-Seite.test/irgendwas umleiten zu www.meine-Seite.test/ Leider klappt dies so nicht. Woran liegt dies?

    Was klappt denn nicht? Fehlerbeschreibung?

    Wenn alles nach www.meine-Seite.test/ umgeleitet werden soll, sollte das auch so in der Regel stehen. Was soll denn Deiner Meinung nach Deine Umleitung nach %{HTTP_HOST} bewirken? Doch bestimmt nicht das was Du vorhast.

    MfG

    1. Was klappt denn nicht? Fehlerbeschreibung?

      Endlosschleife

      Wenn alles nach www.meine-Seite.test/ umgeleitet werden soll, sollte das auch so in der Regel stehen. Was soll denn Deiner Meinung nach Deine Umleitung nach %{HTTP_HOST} bewirken? Doch bestimmt nicht das was Du vorhast.

      Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.

      1. Was klappt denn nicht? Fehlerbeschreibung?

        Endlosschleife

        Logisch 😉

        Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.

        Wirklich alles? Tipp: Schränke es ein, wie folgt:

        RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
        

        So sparst Du Dir die Condition. Denn .css usw. beschreibt ja real existierende Dateien (also anpassen). Alles andere qittiert der Server mit Status 404 und auch diesen kannst Du per ErrrorDocument 404 /fehlerseite.html abfangen.

        MfG

        1. RewriteEngine On
          RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
          

          bringt Fehler: The server encountered an internal error or misconfiguration and was unable to complete your request.

          1. hallo

            RewriteEngine On
            RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
            

            bringt Fehler: The server encountered an internal error or misconfiguration and was unable to complete your request.

            Regeln gehören auf eine Zeile!

            --
            Neu im Forum! Signaturen kann man ausblenden!
          2. Minimal:

            RewriteEngine On
            RewriteRule !\.*$ /
            

            MfG

        2. hallo

          Ja, deshalb habe ich ja hier um Hilfe gebeten. Alles, ja alles, auch www.meine-Seite.test/bild.jpg u.ä. soll auf www.meine-Seite.test/ umgeleitet werden.

          Wirklich alles? Tipp: Schränke es ein, wie folgt:

          RewriteRule !\.(mp3|php|gz|ppd|wav|zip|cgi|css|jpg|js|gif|ico|pac|png|appcache|htm|bin|pdf|nph)$ / [L]
          

          So sparst Du Dir die Condition. Denn .css usw. beschreibt ja real existierende Dateien (also anpassen). Alles andere qittiert der Server mit Status 404 und auch diesen kannst Du per ErrrorDocument 404 /fehlerseite.html abfangen.

          Nein

          Does_not_exist.css ist noch lange keine real existierende Datei. index.html und index.php (beide hast du hier übergangen) sind mit einiger Wahrscheinlichkeit real existierende Dateien.

          RewriteCond %{REQUEST_FILENAME} !-f   
          RewriteCond %{REQUEST_FILENAME} !-d 
          

          ist in dem Fall zutreffender und besser wartbar

          KISS

          --
          Neu im Forum! Signaturen kann man ausblenden!
  4. Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:

    RewriteEngine On
    RewriteRule ^$ - [L]
    RewriteCond %{REQUEST_URI} ^.(.*)$
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
    

    Sie funktioniert tadellos.

    1. Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:

      Es gibt einen Wunsch den man sich immer selbst erfüllen kann und das auch muss weil es gar nicht anders geht: Der Wunsch was zu Lernen.

      MfG

      1. Ich hoffe, dass die Tippgeber auch etwas gelernt haben, nämlich, dass man nach zig Nachfragen und Bedenken einfach auf das eingehen sollte, was der Fragende klar und deutlich ausgedrückt hat.

        1. Ich hoffe, dass die Tippgeber auch etwas gelernt haben, nämlich, dass man nach zig Nachfragen und Bedenken einfach auf das eingehen sollte, was der Fragende klar und deutlich ausgedrückt hat.

          Nein, gerade das hast Du eben nicht! Klappt nicht ist keine Fehlerbeschreibung! Nicht einmal bei Klappstühlen!

          MfG

    2. Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:

      RewriteEngine On
      RewriteRule ^$ - [L]
      RewriteCond %{REQUEST_URI} ^.(.*)$
      RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
      

      Sie funktioniert tadellos.

      Bei mir schlägt da die Regel RewriteRule ^$ - [L] zu und da das Flag [L] gesetzt ist, werden alle weiteren Regeln ignoriert.

      MfG

      1. Hallo pl,

        Warum einfach, wenn es auch kompliziert geht. Diese Lösung hätte ich mir sofort gewünscht:

        RewriteEngine On
        RewriteRule ^$ - [L]
        RewriteCond %{REQUEST_URI} ^.(.*)$
        RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [L,R=302]
        

        Sie funktioniert tadellos.

        Bei mir schlägt da die Regel RewriteRule ^$ - [L] zu und da das Flag [L] gesetzt ist, werden alle weiteren Regeln ignoriert.

        Nö, das stimmt nicht. ^$ trifft nur zu, wenn der String leer ist. Also in diesem Fall nur auf die Root-URL.

        Ich hätte das allerdings vermutlich eher so formuliert:

        RewriteCond %{REQUEST_URI} !^$
        RewriteRule .* http://example.org/ [L,R=302]
        

        Wobei das hier vermutlich auch funktionieren müsste:

        RewriteRule ^.+$ http://example.org/ [L,R=302]
        

        Hab aber leider keinen Apachen mehr um das zu verifizieren 😉

        LG,
        CK