Como posso reescrever com o apache mod_rewrite um diretório inteiro?

Como posso reescrever com o apache mod_rewrite um diretório inteiro?

Preciso que este URL/diretório make/lores/some/aponte/mapeie. login/ Também preciso reescrever .phpas extensões para.html

Exemplo

Quando o cliente digita no example.com/make/lores/some/login.htmlservidor deveria process example.com/login/login.php.

Eu tenho uma regra abaixo, mas o problema é que os outros arquivos no diretório de login (por exemplo, /login/images/one.pngetc.) não são manipulados/reescritos, então acabo com um erro 404.

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

Responder1

Talvez algo assim:

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

Isso cuidará da reescrita para o novo URL. Para corrigir a extensão de .htmlpara .phpvocê pode usar uma segunda regra para isso:

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

Referências

informação relacionada