Como evitar que o apache2 aceite urls sem uma extensão de arquivo?

1

Eu notei que o apache2 carregará uma página, digamos info.php, mesmo que a URL seja especificada sem uma extensão de arquivo como mysite.com/info

Eu pensei que você precisaria fazer um mod_rewrite de alguma forma para obter essa funcionalidade, mas aparentemente é a funcionalidade padrão do meu sistema.

Existe alguma maneira de evitar esse comportamento padrão para que apenas as páginas com extensões de arquivo possam ser especificadas?

Eu reescrevi o fyi desativado.

    
por user784637 05.03.2012 / 23:44

2 respostas

3

O que você está enfrentando é uma parte de um dos módulos principais do apache: mod_dir .

A diretiva que você deseja procurar é DirectoryIndex e diz ao apache para procurar determinados nomes de arquivos quando não houver um nome de arquivo absoluto especificado. O padrão geralmente é uma linha parecida com:

DirectoryIndex index.html index.php default.html default.php default.pl

Se você não deseja que ele pesquise por esses arquivos, e os exiba por padrão, você precisa encontrar a linha DirectoryIndex em seu arquivo de configuração do apache e comentá-la ou se livrar de tudo depois do% co_de declaração%.

    
por 05.03.2012 / 23:54
5

A mágica que você está vendo é realizada pela opção MultiViews de mod_negotiation .

Dos documentos do Apache :

If the server receives a request for /some/dir/foo and /some/dir/foo does not exist, then the server reads the directory looking for all files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client's requirements, and returns that document.

Desative esta mágica desativando MultiViews na configuração do apache ou em um arquivo .htaccess:

Options -MultiViews
    
por 06.03.2012 / 09:58