Para 20.04, o guia do servidor Ubuntu foi movido para um novo local. Redirecionamentos foram adicionados ao arquivo .htaccess. No entanto, eles não estão funcionando para todos os URLs.
Observe que as partes relacionadas de help.ubuntu.com são publicadas a partir do branch master launchpad apenas uma vez por dia. O objetivo é acertar, como eu obviamente não fiz ontem.
Exemplo de trabalho:
https://help.ubuntu.com/20.04/serverguide/remote-administration.html.fr
vai para:
https://ubuntu.com/server/docs
Não funciona exemplo:
https://help.ubuntu.com/20.04/serverguide/remote-administration.html
retorna 404 Não encontrado.
A parte relevante do arquivo .htaccess:
# For 20.04, and likely onwards, the serveguide has moved.
# Don't try to be too clever, just force the base page and drop the rest.
#
RedirectMatch permanent ^/(stable|lts|20\.04)/(serverguide/.+\.html)\..* https://ubuntu.com/server/docs
RedirectMatch permanent ^/(stable|lts|20\.04)/(serverguide/.+\.pdf)\..* https://assets.ubuntu.com/ubuntu-server-guide
Parece precisar da extensão de idioma para funcionar. Isso vai funcionar?
RedirectMatch permanent ^/(stable|lts|20\.04)/(serverguide/.+\.html) https://ubuntu.com/server/docs
RedirectMatch permanent ^/(stable|lts|20\.04)/(serverguide/.+\.pdf) https://assets.ubuntu.com/ubuntu-server-guide
Não tenho como testar isso no meu servidor de teste, e gostaria de acertar na próxima publicação.
EDIT: Ao excluir a parte "início da linha" da expressão, acontece que posso depurar isso no meu servidor de teste, onde o local está em vários subdiretórios. Com os testes de Muru com a resposta e meus próprios testes, há é a confiança na solução.
Referências:
https://help.ubuntu.com/
https://code.launchpad.net/~ubuntu-core-doc/help.ubuntu.com/help.ubuntu.com
https://bazaar.launchpad.net/ ~ubuntu-core-doc/help.ubuntu.com/help.ubuntu.com/view/head:/.htaccess
servidor web Apache - como remover extensões de linguagem
Em
RedirectMatch
(eAliasMatch
), a regex é comparada com a URL. Ele não precisa corresponder ao URL inteiro, a menos que esteja ancorado para isso usando^
e$
. Então, sim, sua sugestão:corresponderá a ambos
/20.04/serverguide/remote-administration.html.fr
e/20.04/serverguide/remote-administration.html
. Ele também corresponderá/20.04/serverguide/remote-administration.html.frfoobar
, mas, novamente, a versão original também.Não é tão difícil testar se você tem o Docker instalado:
Obtenha a imagem do docker e a conf do Apache:
my-httpd.conf
para terAllowOveride All
no<Directory "/usr/local/apache2/htdocs">
blocoCrie seus arquivos htaccess:
Crie alguns casos de teste:
Execute o apache:
Teste seus URLs neste servidor local do apache: