Diddi: Umleiten auf andere URL aber nur wenn ....

Hallo,

Wenn ich die Seite test.com/spezial/ aufrufe, so soll diese Seite angezeigt werden.

In allen anderen Fällen (test.com, test.com/irgendwas) soll umgeleitet werden auf example.com.

Wie kann ich dies in .htaccess realisieren?

  1. Wie kann ich dies in .htaccess realisieren?

    RewriteEngine On
    
    # Wenn die aufgerufene URL genau "/spezial/" ist, dann Seite anzeigen
    RewriteCond %{REQUEST_URI} ^/spezial/?$ [NC]
    RewriteRule ^ - [L]
    
    # Alle anderen Anfragen umleiten auf example.com
    RewriteRule ^(.*)$ https://example.com/ [R=301,L]
    
    1. Hallo,

      danke erstmal.

      Aber in allen Fällen wird auf die neue Homepage (https://example.com/) umgeleitet.

      1. Hallo G. „Diddi“ Weiss,

        dann hast Du falsch abgetippt oder es gibt Auswirkungen aus dem Umfeld.

        Prinzipiell funktioniert das, was „Ludwig Poehlmann“ geschrieben hat. Auch wenn es mit dem ! vor der Bedingung einfacher gegangen wäre:

        # Alles außer /spezial und /spezial/ umleiten auf example.com
        RewriteCond %{REQUEST_URI} !^/spezial/?$ [NC]
        RewriteRule ^ https://example.com/ [R=301,L]
        

        Wenn es bei Dir nicht funktioniert, kann das verschiedene Ursachen haben.

        • Der Browser merkt sich, dass er für einen Request eine HTTP 301 Antwort bekommen hat, und geht für künftige Requests gar nicht mehr zum Server. Hier kann es helfen, die Entwickerwerkzeuge zu öffnen, auf dem Netzwerktab den Cache zu deaktivieren und die Abrufe dann zu testen. Oder du löschst generell den Brower-Cache in den Einstellungen des Browsers. Für Tests könnte es deshalb besser sein, nicht HTTP 301 zu senden, sondern 302. Das merkt sich der Browser nicht
        • Du hast noch andere Sachen in deiner .htaccess, die sich mit den RewriteCond/RewriteRule Angaben beißen
        • Du hast nicht /spezial/ abgerufen, sondern /spezial/foo.html, weil Du die Anforderung anders gemeint hast als wie wir sie verstanden haben. Die gezeigte RewriteCond funktioniert aber nicht für "beginnt mit /spezial/", sondern für "identisch zu /spezial oder /spezial/".

        Rolf

        --
        sumpsi - posui - obstruxi