.png)
Estou executando o Apache 2.4.2 em meu servidor local. O arquivo do meu site .htaccess
é o seguinte:
DirectoryIndex home.php
Options -Indexes
ErrorDocument 404 /404.php
Isso funciona muito bem ao exibir uma página HTTP 404 quando você tenta acessar um arquivo inexistente no navegador, mas não mostra a página de erro ao acessar arquivos existentes usando a seguinte sintaxe:
http://localhost/<FileName>.php/<AdditionalCharacters>
Por exemplo, se eu for para home.php/xyz
, a home.php
página carrega, mas todos os links relativos no HTML estão quebrados. Não tenho um home.php
diretório no meu servidor! O que está acontecendo?
Existe uma diretiva ou regra que posso adicionar ao meu .htaccess
arquivo para interromper esse comportamento e gerar um erro HTTP 404?
Responder1
Este é um recurso chamado "path_info" e é comumente usado para executar sites inteiros a partir de um único script CGI (quando alternativas melhores, como mod_rewrite, não estão disponíveis).
Se a URL fizer com que um script CGI seja tratado como um diretório, o Apache executará esse script normalmente, mas fornecerá a ele os componentes extras do caminho na PATH_INFO
variável de ambiente. Muitos mecanismos wiki usam esse recurso – por exemplo, você pode acessarhttps://wiki.archlinux.org/index.php/Beginners%27_Guide/PreparationPor aqui.
Isto pode ser controlado usando oAceitarPathInfocontexto.