htaccess-Merkwürdigkeiten

  • Ich leg mir gerade die Karten. Meine WP-Installation befindet sich in einem Unterordner und bis vor kurzem war dieser auch Teil der URL: domain.de/ordner
    Jetzt habe ich die URL der Seite geändert, sie lautet jetzt ohne Unterordner domain.de
    WP befindet sich weiterhin physikalisch im Unterordner, nur die (angepasste) index.php und htaccess sind jetzt im Root und ich habe die Seitenadresse in den Einstellungen geändert. Funktioniert auch wunderbar.
    Jetzt möchte ich in der htaccess natürlich alle "alten" Aufrufe mit einem 301-rewrite umleiten auf die neue URL. Auch das habe ich hingekriegt, nur leider nicht 100%ig.
    Alle Seiten incl. der Unterseiten funktionieren wunderbar. Aus domain.de/ordner/seite/kindseite wird domain.de/seite/kindseite.
    Was nicht läuft ist zum einen der Aufruf zur ehemaligen Startseite domain.de/ordner, sowie die Kategorie-Archive domain.de/category/blabla und die einzelnen Post-Adressen. Diese URLs werden nicht verändert.

    Das ist, was ich ganz oben, also vor dem von WP und dem von WPSuperCache erzeugten Einträgen in die htaccess im root eingefügt habe:

    Apache Configuration
    RewriteCond %{HTTP_HOST} ^\.domain.de/ordner$ [NC]
    RewriteRule ^(.*)$ http://domain.de/$1 [R=301,L]


    So ganz fit bin ich mit der Thematik noch nicht, aber vielleicht kann mir hier ja jemand den entscheidenden Tip geben. Danke...

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • bevor die RewriteEngine nicht auf On steht funktioniert das mal gar nicht

    Apache Configuration
    # BEGIN [COLOR=Black]WordPress[/COLOR] 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^\.domain.de/ordner$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ http://domain.de/$1 [R=301,L]
    RewriteRule . /index.php [L] 
    </IfModule> 
    # END WordPress

    würd ich jetzt sagen...

  • Danke für den Tip.
    Die RewriteEngine steht natürlich auf ON (hatte ich nicht mit hier rein kopiert.

    Wenn ich obigen Code in die htaccess eingebe, ist der Blog unter domain.de leider nicht mehr zu erreichen. Stattdessen gibt's nen Serverfehler 500.

    Noch jemand ne Idee?

  • Jetzt habe ich die URL der Seite geändert, sie lautet jetzt ohne Unterordner domain.de


    Wenn dir die Adresse domain.de nicht gehört, verwende bitte example.com, die existiert genau dafür.

    Zitat

    Jetzt möchte ich in der htaccess natürlich alle "alten" Aufrufe mit einem 301-rewrite umleiten auf die neue URL.
    Das ist, was ich ganz oben, also vor dem von WP und dem von WPSuperCache erzeugten Einträgen in die htaccess im root eingefügt habe:

    Apache Configuration
    RewriteCond %{HTTP_HOST} ^\.domain.de/ordner$ [NC]
    RewriteRule ^(.*)$ http://domain.de/$1 [R=301,L]


    %{HTTP_HOST} meint nur den Host, nicht Host + Verzeichnis.
    Das $ am Ende der Bedingung sagt, daß der Request genau dort endet. Das willst du aber nicht.

    Was eher funktionieren könnte (ungetestet):

    Apache Configuration
    RewriteCond %{REQUEST_URI} ^/ordner(.*)$ [NC]
    RewriteRule ^(.*)$ http://example.com%1 [R=301,L]
  • Danke für den Hinweiß mit example.com. Das wußte ich noch nicht.

    Ich habe deinen Code eingesetzt und er funktioniert leider auch nur zum Teil.

    Die Umleitung der Hauptadresse klappt nicht. Für example.com/ordner/ bleibt example.com/ordner/

    Es funktioniert folgende Umleitungen:
    example.com/ordner/seite/ zu example.com/seite/
    aber
    example.com/ordner/seite/unterseite/ zu example.com/seite/unterseite/ funktioniert nur bei bestimmten Seiten.

    Die Kategorien verhalten sich auch merkwürdig:
    example.com/ordner/category/news wird zu example.com/news-archiv, also das /category/ fällt raus, und da es keine news-Seite gibt geht er zu /news-archiv/, denn die Seite gibt's.

    So richtig zu verstehen ist das für mich nicht...
    Noch jemand nen Tip für mich? Danke.

  • Die Umleitung der Hauptadresse klappt nicht. Für example.com/ordner/ bleibt example.com/ordner/


    Seltsam. Vergleichbares funktioniert bei mir problemlos.

    Zitat

    example.com/ordner/seite/unterseite/ zu example.com/seite/unterseite/ funktioniert nur bei bestimmten Seiten.


    Wie bestimmt? Wodurch unterscheiden sich diese Seiten von anderen?

    Zitat

    Die Kategorien verhalten sich auch merkwürdig:
    example.com/ordner/category/news wird zu example.com/news-archiv, also das /category/ fällt raus, und da es keine news-Seite gibt geht er zu /news-archiv/, denn die Seite gibt's.


    Da greift WordPress’ interne Korrektur, die versucht, die passende Seite zu finden. Hat mit den Rewrite-Regeln nichts mehr zu tun.

    Vielleicht postest du mal die reale Struktur der nicht korrekt umgeleiteten Seiten und deine komplette .htaccess. Ohne diese Details kann man nur stochern.

  • Vielleicht postest du mal die reale Struktur der nicht korrekt umgeleiteten Seiten und deine komplette .htaccess. Ohne diese Details kann man nur stochern.


    OK, ich möchte 17hippies.de/hiplounge/ umleiten auf 17hippies.de - geht nicht.
    Außerdem soll 17hippies.de/hiplounge/category/news/ zu 17hippies.de/category/news/ werden, wird aber 17hippies.de/news-archiv/ weil /category/ wohl rausgeschmissen wird.
    Das gleiche passiert mit den Kategorien /videos/ und /galerie/.
    Merkwürdigerweise funktioniert 17hippies.de/hiplounge/texte/text-adieu/ zu 17hippies.de/texte/text-adieu/, aber 17hippies.de/hiplounge/bio/2004/ nicht, es wird zu 17hippies.de/bio/, obwohl es beides Unterseiten sind.
    Die Hauptseiten funktionieren alle, wie es scheint. Also z.B. 17hippies.de/hiplounge/guestbook/ zu 17hippies.de/guestbook/

    So, das waren die Links. Jetzt die htaccess-Datei (mit installiertem WPSuperCache):

    Ach ja, der Redirect der info-Seite funktioniert.

    Danke für die Hilfe...

  • Noch einer so spät auf? ;-)

    Ich hab jetzt deine Variante benutzt und der obere Teil der htaccess lautet jetzt so:

    Apache Configuration
    <IfModule mod_rewrite.c>
    RewriteEngine On
    Redirect /info/ http://info-de.17hippies.com
    
    
    RewriteCond %{REQUEST_URI} ^/hiplounge(.*)$ [NC]
    RewriteRule ^(.*)$ http://17hippies.de/$1 [R=301,L]
    
    
    </IfModule>

    Das Ergebnis ist aber das gleiche...
    Liegt es vielleicht gar nicht an den Zeilen, sondern ist der Bug weiter unten?

    So, das war jetzt aber definitiv der letzte Post von mir heute...
    Gute Nacht.

  • Um nochmal sicherzugehen – dein Code sieht jetzt so aus, ja?

    Apache Configuration
    RewriteCond %{REQUEST_URI} ^/hiplounge(.*)$ [NC]
    RewriteRule ^(.*)$ http://17hippies.de%1 [R=301,L]

    Hm, eigentlich sollte sogar eine Zeile reichen reichen:

    Apache Configuration
    RewriteRule ^/hiplounge(.*)$ http://17hippies.de$1 [L,R=301]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!