Redirecione caminhos inválidos usando .htaccess (por exemplo, "home.php/xyz")

Redirecione caminhos inválidos usando .htaccess (por exemplo, "home.php/xyz")

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.phppágina carrega, mas todos os links relativos no HTML estão quebrados. Não tenho um home.phpdiretório no meu servidor! O que está acontecendo?

Existe uma diretiva ou regra que posso adicionar ao meu .htaccessarquivo 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_INFOvariá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.

informação relacionada