Estou hospedando meu site estático no AWS S3, com a Cloudfront como um CDN, e estou pensando em como conseguir URLs limpas funcionando.
Atualmente tenho que ir para example.com/about.html
para obter a página sobre. Eu prefiro example.com/about
, assim como em todas as minhas outras páginas. Além disso, tenho que fazer isso porque minhas URLs canônicas foram definidas com metatags e mecanismos de pesquisa, e será um pouco demais para alterá-las.
Existe uma configuração na Cloudfront que eu não vejo?
Existem duas opções que eu explorei.
Primeiro, você apaga .html
do arquivo antes de fazer o upload para o S3 e, em seguida, edita o Cabeçalho de Conteúdo no http desse arquivo. Isso pode funcionar lindamente, mas não consigo descobrir como editar cabeçalhos de conteúdo na linha de comando, onde estou escrevendo meu script bash "push website update".
A segunda abordagem aproveita o recurso do S3 que reconhece os arquivos padrão da raiz, geralmente index.html. Pode ser uma ótima abordagem, mas realmente atrapalha minha estrutura de diretórios, e deixa uma barra nas URLs que não funciona para mim.
Eu poderia escrever uma função lambda para lidar com isso?
Estou usando essencialmente este script bash para sincronizar novos arquivos
aws s3 sync site/ s3://example.com