
Этот вопрос касается публикации Ubuntu Serverguide на help.ubuntu.com. Для цикла 20.04 LTS будут (ну ладно, могут быть) существенные изменения в рабочем процессе исходного кода для Ubuntu Serverguide. В настоящее время переводы для этой миграции не рассматриваются. Наша лучшая обратная связь заключается в том, что типы администраторов серверов предпочитают английский язык, даже если это не их родной язык. Прежде чем решение станет необратимым, мы хотим протестировать его, выпустив следующую точку выпуска 18.04 Ubuntu Serverguide только на американском английском. Все готово, за исключением одной проблемы:
Мы точно знаем, что существует множество ссылок, закладок и т. д. с расширением языка. Пример:
https://help.ubuntu.com/lts/serverguide/networking.html.en-CA
И мы хотим, чтобы этот сценарий вместо этого возвращал эту страницу:
https://help.ubuntu.com/lts/serverguide/networking.html
поскольку версии для конкретных языков больше не будут существовать, но возвращение ошибки 404 Not Found нежелательно.
Текущая версия файла .htaccess с закомментированными предыдущими попытками выглядит так:
# unable to make below method work.
#RedirectMatch permanent ^(*\.html)\.*$ $1
#
# enable rewriting
RewriteEngine on
#RewriteRule ^(*\.html)\.*$ $1 [R=301, L]
#RewriteRule ^(*\.html)\.*$ $1
RewriteRule ^(*\.html)\.*$ $1 [PT]
#RewriteRule ^(*.html).*$ $1
В результате чего:
500 Internal Server Error
клиенту, а в журналах тестового сервера это:
[Thu Jun 20 11:57:07.647838 2019] [core:alert] [pid 16079] [client 192.168.111.101:62992] /home/doug/public_html/linux/ubuntu-docs/help.ubuntu.com/dev/lts/serverguide/.htaccess: RewriteRule: cannot compile regular expression '^(*\\.html)\\.*$', referer: http://my-test-website/~doug/linux/ubuntu-docs/help.ubuntu.com/dev/index.html
[Thu Jun 20 14:19:27.360334 2019] [core:alert] [pid 16079] [client 192.168.111.101:63908] /home/doug/public_html/linux/ubuntu-docs/help.ubuntu.com/dev/lts/serverguide/.htaccess: RewriteRule: cannot compile regular expression '^(*\\.html)\\.*$', referer: http://my-test-website/~doug/linux/ubuntu-docs/help.ubuntu.com/dev/index.html
Обратите внимание, что текущие попытки с подстановочным знаком для расширения языка. Если это невозможно, то список языков:
ace ar ast be bg bn bs ca cs da de el en en_AU en_CA en_GB eo es et eu fa fi fr gl gu he hr hu id is it ja km ko ku lo lt lv mk ms nb nl oc pl ps pt_BR pt ro ru sk sl sq sr sv th tl tr ug uk ur vi zh_CN zh_TW
Может ли кто-нибудь помочь с этим?
решение1
RewriteRule ^(.*.html)\..*$ $1
Это переписывается /foobar.html.anything
в /foobar.html
, и, кажется, делает то, что вам нужно.
Если предполагается, что он будет постоянным, вам, вероятно, следует отправить 301:
RewriteRule ^(.*.html)\..*$ $1 [R=301]