Para responder diretamente às suas perguntas - você pode manter esses arquivos em outro lugar ou pode configurar o apache para negar acesso a eles - negar o acesso a * .bak é relativamente simples.
O Apache, a menos que configurado para não fazê-lo (como mencionado por MH acima), gera e exibe uma lista de diretórios para qualquer diretório que não contenha um arquivo de índice - definido pela diretiva DirectoryIndex, mas tipicamente index.html, index .htm, index.php e similares.
Em uma nota mais geral:
Você pode considerar o uso de um sistema de controle de revisão como SVN ou git (ou mesmo RCS) para manter versões antigas e um histórico de alterações de suas páginas da Web (incluindo a capacidade de ver o que mudou e quando e, mais importante, a capacidade de reverter para uma versão anterior)
Tanto o git quanto o svn precisam de um repositório configurado em algum outro lugar. O RCS é bastante primitivo e básico, mas não requer nenhuma configuração, ele mantém o histórico de revisão no mesmo diretório ou em um subdiretório ./RCS, se existir. Um pequeno incômodo com o RCS é que quando você faz check-in de um arquivo, ele altera as permissões para somente leitura, então você precisa fazer check-out novamente antes de poder editá-lo novamente (ou use ci -l
para fazer check-in de um arquivo e imediatamente confira).
IMO git é provavelmente um exagero para este trabalho, o SVN está próximo do ideal em termos de complexidade vs capacidade de gerenciar o histórico de revisão de um conjunto de páginas HTML editadas manualmente, e o RCS é arcaico, mas ainda é útil. Com o RCS, você só pode editar arquivos diretamente em / var / www, o que significa que as alterações são "ativas" assim que você salva o arquivo. Com svn ou git você pode verificar uma cópia local em, por exemplo, seu diretório pessoal em sua máquina desktop, editar os arquivos, fazer o check-in das mudanças e então fazer o checkout das atualizações em / var / www no servidor quando acabado. Você também pode fazer o check-out das alterações em um servidor de temporariedade primeiro para teste, antes de verificá-las no servidor de produção.
Você pode, então, negar acesso aos subdiretórios .svn /, .git /, RCS / etc com o apache - por exemplo, consulte link
É claro que usar o controle de revisão com eficiência exigirá um pouco de disciplina. você terá que adquirir o hábito de verificar suas alterações sempre que as fizer - vale a pena o esforço.