3 Stimmen

htaccess-Umleitungsregeln - Wie leitet man eine Ebene höher um?

http://mysite.com/level-1/level-2/level-3/

Ich möchte umleiten zu

http://mysite.com/level-1/level-2/

"Ebene-1" und "Ebene-2" können alles sein, was der Benutzer eingibt... (nicht genau diese Worte)

Könnten Sie mich auf eine Anleitung hinweisen oder mir ein paar Tipps geben?

Herzlichen Dank!

3voto

Chris Morgan Punkte 78929

Sie wollen nur das wegwerfen, was nach dem zweiten Schrägstrich kommt. Dies ist eine einfache Regel:

RewriteRule ^(.*?/.*?/).+$ $1

Dann untersuchen Sie, ob Sie Dinge wie [L,QSA] wollen. Sie können oder müssen nicht.

3voto

LazyOne Punkte 149905

Basierend auf Ihrem Kommentar (von Level-3 zu Level-2 Ordner EXAKT mit 301 Permanent Redirect):

RewriteEngine On
RewriteBase /

RewriteRule ^([^/]+/[^/]+/)[^/]+/$ http://www.example.com/$1 [QSA,R=301,L]
  1. Diese Regel leitet um example.com/hello/pink/kitten/ a example.com/hello/pink/

  2. Wenn die URL-Struktur anders ist, wird KEINE Umleitung erfolgen:

    • fehlender hinterer Schrägstrich (z. B. example.com/hello/pink/kitten )
    • 4-stufige tiefe URL (z. B. example.com/hello/pink/kitten/family/ )
  3. Diese Regel muss in folgende Bereiche aufgenommen werden .htaccess im Root-Ordner der Website. Wenn sie an anderer Stelle platziert wird (z. B. in der Apache-Konfigurationsdatei, innerhalb von <VirtualHost> zum Beispiel) muss die Regel leicht angepasst werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X