Веб-сервер Apache - как убрать языковые расширения

Этот вопрос относится к публикации Ubuntu Serverguide на help.ubuntu.com. В цикле LTS 20.04 произойдут значительные изменения в рабочем процессе исходного кода для 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)\\.* 

Обратите внимание, что текущие попытки с подстановочным знаком для расширения языка. Если это невозможно, тогда список языков:

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

Может ли кто-нибудь помочь с этим?

, 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)\\.*

Обратите внимание, что текущие попытки с подстановочным знаком для расширения языка. Если это невозможно, тогда список языков:

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

Может ли кто-нибудь помочь с этим?

, 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

Может ли кто-нибудь помочь с этим?

2
задан 21 June 2019 в 00:39

1 ответ

RewriteRule ^(.*.html)\..*$ $1    

Это переписывает /foobar.html.anything в /foobar.html и, кажется, делает то, что вы хотите.

Если он предназначен для постоянного использования, вы, вероятно, должны отправить 301:

RewriteRule ^(.*.html)\..*$ $1 [R=301]
2
ответ дан 21 June 2019 в 00:39

Другие вопросы по тегам:

Похожие вопросы: