Apesar de haver vários frameworks, tem coisa que faço sem a utilização deles. Acho que isso é comum para desenvolvedores. É legal proibir o acesso direto do usuário aos arquivos do seu site, como uma imagem ou até mesmo um script que faça algo mais delicado como excluir_usuario.php, por exemplo. No Apache é fácil fazer isso usando o arquivo
.htaccess.
Vamos lá:
Crie um arquivo
.htaccess. Se for Windows, copie de um diretório que já exista e pague seu conteúdo, ou baixe um exemplo da internet. O Windows não deixa criar arquivo assim que ele considera sem nome (somente com extensão).
O Conteúdo dele seria assim:
# htaccess do Daniel - testando e evoluindo - v0.1
IndexIgnore *
Options +FollowSymlinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule !^index.php(.*)$ index.php$1 [L]
</IfModule>
<Files .htaccess>
order deny,allow
deny from all
</Files>
A primeira linha com
IndexIgnore não deixa listar o conteúdo do diretório.
A linha do
Options +FollowSymlinks é para o funcionamento do módulo de rescritra.
Se o módulo de escrita estiver ativado, usa ele para substituir qualquer chamada de arquivo diferente de
index.php e chama o
index.php com a querystring usada inicialmente, ou seja, se eu chamar
daniel.php?a=ddd, chama o caminho
index.php?a=ddd.
Depois ele proíbe o acess odireto ao
.htaccess. Só isso.
É simples e atende minhas necessidades. Claro que pode ser que eu melhore (com sua ajuda inclusive), mas já é um começo para evitar surpresas desagradáveis.
Esse arquivo faz efeito para os subdiretórios também. Se você quiser alterar as regras deles, basta criar um .htaccess com elas. Em caso de não criar, deve-se criar um arquivo index.php que não faz nada, pois sempre haverá redirecionamento para o index.php de cada diretório. Ou então na regra do .htaccess, basta colocar para redirecionar não apra o
index.php, mas para
/index.php ou
/site/index.php para sempre ir para o mesmo arquivo.
Abraço!!