Estou tentando alias um caminho para um arquivo específico
Eu tentei:
Alias /Console "/console/console.html"
Agora vai de http://example.com/Console
fato traz console.html
.
mas qualquer recurso relativo referenciado de dentro console.html
(ou seja, images\1.jpg
) falha, pois parece ir para o document_root
O que estou fazendo errado?
Este é um problema do lado do cliente relacionado ao uso de URLs relativos. Como você está efetivamente reescrevendo a URL de
/console/console.html
para/Console
, qualquer URL relativa (para imagens, CSS, JS, etc.) agora será relativa à raiz do documento e não ao/console
subdiretório.Você precisa "corrigir" seus URLs relativos e torná-los relativos à raiz (ou seja, começando com uma barra, como em
/console/images/1.jpg
) ou torná-los absolutos.Alternativamente, você pode incluir um
base
elemento nahead
seção do seu documento HTML. Isso faz referência ao URL absoluto ao qual todos os URLs relativos são relativos . Em outras palavras, como você espera que esses URLs relativos sejam relativos ao/console/console.html
documento, adicione o seguinte àhead
seção:Agora, uma URL relativa, como
images/1.jpg
referenciada em um documento em URL/Console
, solicitaráhttp://example.com/console/images/1.jpg
, nãohttp://example.com/images/1.jpg
.No entanto, existem ressalvas com o uso do
base
elemento. Notavelmente, se você tiver links relativos na página usando identificadores de fragmento, por exemplo,href="#some-id"
. Isso agora também é relativo ao seubase
elemento, portanto, o link na página pode estar quebrado. A única maneira de contornar isso é qualificar totalmente o link.Referência:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
No entanto,
Alias
não é a diretiva correta a ser usada ao mapear para um único arquivo, poisAlias
é uma correspondência de prefixo, portanto, também/Console/foo
seria mapeada/console/console.html/foo
. Talvez você possa usarAliasMatch
em vez disso:Isso mapeará apenas arquivos
/Console
.Ou você pode usar mod_rewrite e emitir um rewrite interno . (Em oposição a um redirecionamento externo que alteraria a URL e faria com que o cliente emitisse uma segunda solicitação.) Por exemplo: