em uma inclusão SSI, o arquivo incluído pode ser redirecionado em um arquivo .htaccess

1

Eu tenho algumas páginas html antigas que incluem SSI nelas para incluir certos html em todas as páginas.

Então, a SSI se parece com isso:

<!--#include virtual="/includes/noNav/footercode.html"-->

Mas quero mover esse arquivo incluído de /includes/noNav/footercode.html para /includes/footercode.html, então implementei um redirecionamento em um arquivo .htaccess como este:

# Redirect permanent /includes/noNav/footercode.html  http://intranet.myorg.org/includes/footercode.html

Mas agora recebo erros dizendo "não é possível incluir" /includes/noNav/footercode.html "no arquivo analisado" Por isso, os redirecionamentos não funcionam nos arquivos incluídos?

Além disso, se eu navegar diretamente para o caminho antigo, ele me redirecionará corretamente. Mas falha se o caminho estiver incluído.

    
por kidbrax 13.06.2011 / 22:42

2 respostas

3

O SSI é analisado como parte do módulo SSI do apache e não faz solicitações da web de volta ao Apache para recuperar o arquivo. Como ele não usa HTTP de volta ao Apache para recuperar os arquivos especificados por #include, nenhuma regra de reescrita ou redirecionamento é aplicada.

A diretiva virtual = localiza um arquivo iniciando no ServerRoot, enquanto a diretiva file = encontra um arquivo no mesmo diretório da página atual.

    
por 13.06.2011 / 22:59
0

O que você está tentando realizar pode realmente ser feito através de reescreve (com mod_rewrite ) em oposição a um redirecionamento. Seu .htaccess deve ser alterado para:

RewriteRule /includes/noNav/footercode.html   /includes/footercode.html

O arquivo ainda estará acessível como /includes/noNav/footercode.html , mas o conteúdo de /includes/footercode.html será exibido. Esteja ciente de que você precisa ativar as reescritas, caso ainda não tenha feito isso:

RewriteEngine on

E que algumas variáveis podem ter seus nomes alterados para antes REDIRECT _ para o nome.

    
por 17.11.2016 / 19:47