Reescreva um diretório para outro diretório sem um redirecionamento [duplicado]

1

Eu tenho a seguinte regra de reescrita:

RewriteRule ^support/(.*)$ /blog/support/$1 [R=301,NC,L]

No entanto, tudo o que faz é um simples redirecionamento. O que eu quero é que /support mostre o conteúdo de /blog/support sem alterar o URL de /support . Como posso fazer isso?

Além disso, o acima só funciona quando /support tem uma barra final.

    
por Abs 26.12.2013 / 16:27

1 resposta

2

Se /blog/support corresponder a um local no sistema de arquivos, digamos /var/www/blog/support , você poderá usar apenas

Alias /support /var/www/blog/support

A documentação da diretiva Alias diz que o segundo argumento tem que ser um caminho de arquivo ou diretório, não outra URL.

Se você deseja apenas um redirecionado interno, para que o usuário não veja a alteração do URL, provavelmente tudo que você precisa fazer é remover R=301, dos sinalizadores em RewriteRule .

Para evitar a necessidade de teste / trailing para uma barra ou fim de linha:

RewriteRule ^support(/.*|$) /blog/support$1 [NC,L]
    
por 26.12.2013 / 17:50