Usando RewriteRule apenas para uma subpasta / projeto específico

1

Eu tenho um aplicativo em uma subpasta "subpasta" do Apache para que eu possa usar um URL como: https://example.com/subfolder/#/v2/login em vez de https://example.com/#/v2/login .

Eu tenho o seguinte no arquivo .htaccess na minha pasta htdocs:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^(?!subfolder/).* subfolder/$0 [L,NC]

O problema é que ele está sendo reescrito mesmo para o URL raiz do meu servidor; por exemplo, se eu for para https://example.com/ , vejo a home page do meu aplicativo em "subpasta". Eu gostaria que essas regras de reescrita se aplicassem apenas ao aplicativo em "subpasta".

Eu também tentei colocar o arquivo .htaccess dentro da "subpasta", mas não funciona.

    
por Rafael Angarita 21.02.2017 / 14:30

1 resposta

0

RewriteRule ^(?!subfolder/).* subfolder/$0 [L,NC]

Para excluir apenas o URL raiz (em .htaccess ), você pode alterar o padrão RewriteRule para corresponder a 1 ou mais caracteres ( .+ ), em vez de 0 ou mais ( .* ) que você tem atualmente:

RewriteRule ^(?!subfolder/).+ subfolder/$0 [L,NC]

Como alternativa, para excluir todos os arquivos existentes na raiz do site (ou em qualquer lugar), inclua duas condições adicionais:

RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!subfolder/).+ $0 [L,NC]
    
por 21.02.2017 / 14:38