• Gelöst priga

    (@priga)


    Hallo,
    ich habe eine WP-Installation in einem Unterverzeichnis einer bestehenden WP-Installation angelegt. Jetzt möchte ich, um Schreibfehlern vorzubeugen, eine Umleitung in die .htaccess schreiben. So sieht meine .htaccess jetzt aus:

    # BEGIN WordPress
    # Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
    # dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
    # Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /Ein-Unterverzeichnis/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /Ein-Unterverzeichnis/index.php [L]

    Redirect 301 /ein-unterverzeichnis/ https://meine-domain.de/Ein-Unterverzeichnis
    </IfModule>

    # END WordPress`

    Ich möchte damit erreichen, dass, wenn jemand den Namen des Unterverzeichnisses klein schreibt, er automatisch auf das richtig geschriebene Unterverzeichnis geleitet wird. Was mache ich falsch? Habe ich irgendwo einen Denkfehler drin?

    Danke schon mal

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Deine Beiträge und Seiten sind in der MySQL-Datenbank mit individuellen IDs gespeichert. Da aber Links wie https://example.com/?p=42 wenig aussagefähig (und damit auch nicht sonderlich suchmaschinenfreundlich) sind und sich auch schlecht merken lassen, verwenden wir „Pretty Permalinks“, schönere, lesbare, permanente Links zu den Beiträgen und Seiten. Wie funktioniert das? Indem dem Webserver mitgeteilt wird „alles, was du nicht als Datei oder Verzeichnis tatsächlich auf dem Server findest (ein Verzeichnis wp-admin gibt es ja, eine Datei wp-login.php auch), leitest du an die index.php weiter“. Die index.php ruft weitere PHP-Skripte auf, sucht damit passend zum Slug (dem sprechenden Teil der Pretty Permalinks) nach einem Beitrag oder Seite und gibt die aus. Und jetzt aufgepasst: alles was du anschließend noch an Weiterleitungsregeln eingibst, wird ignoriert, weil WordPress dann die Seite oder den Beitrag längst ausgeliefert hat. Merke: den WordPress-Block immer ganz ans Ende setzen. Dann klappt’s auch mit anderen Weiterleitungsregeln.

    Thread-Starter priga

    (@priga)

    Hallo Bego Mario Garde,

    vielen Dank für den Tipp und die schnelle Antwort.
    Ich hoffe, ich habe dich richtig verstanden und meine Regel vor den WordPress-Block gesetzt (s. u.).

    Leider hat auch dies nicht die gewünschte Wirkung.
    Habe ich da etwas falsch gemacht / verstanden?

    <IfModule mod_rewrite.c>
    RewriteEngine On
    Redirect 301 /ein-unterverzeichnis/ https://meine-domain.de/Ein-Unterverzeichnis
    </IfModule>

    # BEGIN WordPress
    # Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
    # dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
    # Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /Ein-Unterverzeichnis/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /Ein-Unterverzeichnis/index.php [L]

    </IfModule>

    # END WordPress`

    Ich weiß nicht im Detail wieso (und mir fehlt ein wenig die Zeit, das zu recherchieren), aber gemischte Groß-/Kleinschreibung ist in URLs ohnehin nicht optimal.

    Wenn du zwei WordPress-Installationen ineinander verschachtelt hast (sowieso aus mehreren Gründen keine gute Idee!), brauchst du zwei .htaccess – eine im Web-Stammverzeichnis mir der Weiterleitungsregel für das Verzeichnis und der Weiterleitung für die Haupt-WordPress-Installation sowie eine zweite mit der Weiterleitung für die WordPress-Installation im Unterverzeichnis.

    Thread-Starter priga

    (@priga)

    Hallo Bego Mario Garde,

    vielen Dank für deine Antwort. Das war die Lösung.
    Jetzt habe ich die Umleitung auch in der Hauptdomain angegeben und nun funktioniert es.
    Besten Dank :-D.

    Die ineinander verschachtelten Installationen sind nicht ideal, das ist mir bewusst, aber manchmal hat man nur die Wahl zwischen Pest und Cholera :-(.

    Dann doch lieber Schnupfen: du kannst WordPress parallel installieren, sodass jede Installation ihr eigenes Verzeichnis hat. Die index.php der Haupt-Installation wird dabei ins Web-Stammverzeichnis kopiert und der Pfad in der letzten Zeile dieser Datei angepasst.

    Thread-Starter priga

    (@priga)

    Das ist natürlich sehr elegant und eine saubere Lösung.
    Ich wusste nicht, dass man das so machen kann.

    Beim nächsten Mal weiß ich es.

    Danke vielmals :-))

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Das Thema „Umleitungsfrage“ ist für neue Antworten geschlossen.