Reescrever um diretório para outro diretório sem redirecionamento

Reescrever um diretório para outro diretório sem redirecionamento

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 é /supportmostrar o conteúdo /blog/supportsem alterar a URL de /support. Como posso fazer isso?

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

Responder1

Se /blog/supportcorresponder a um local no sistema de arquivos, digamos /var/www/blog/support, então você pode simplesmente usar

Alias /support /var/www/blog/support

Odocumentaçãopara a diretiva Alias ​​diz que o segundo argumento deve ser um caminho de arquivo ou diretório, e não outro URL.

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

Para não exigir o final /, teste uma barra ou um final de linha:

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

informação relacionada