Wie kann ich mit Apache mod_rewrite ein ganzes Verzeichnis neu schreiben?

Wie kann ich mit Apache mod_rewrite ein ganzes Verzeichnis neu schreiben?

Ich brauche diese URL/dieses Verzeichnis, make/lores/some/um darauf zu verweisen/sie abzubilden. login/ Ich muss auch .phpErweiterungen neu schreiben, um.html

Beispiel

Wenn der Client etwas eingibt, example.com/make/lores/some/login.htmlsollte der Server process example.com/login/login.php

Ich habe unten eine Regel, aber das Problem besteht darin, dass die anderen Dateien im Anmeldeverzeichnis (z. B. /login/images/one.pngusw.) nicht verarbeitet/neu geschrieben werden, sodass ich am Ende einen 404-Fehler erhalte.

RewriteRule     ^(.*)\.htm$     login/index.php [NC]

Antwort1

Vielleicht so etwas:

RewriteEngine on
RewriteRule   ^/make/lores/some/(.+)  http://example.com/login/$1      [R,L]

Damit wird die Umschreibung in die neue URL vorgenommen. Um die Erweiterung von .htmlin zu korrigieren .php, können Sie eine zweite Regel verwenden:

RewriteRule   ^/login/(.+)\.htm$      http://example.com/login/$1.php  [R,L]

Verweise

verwandte Informationen