
此問題涉及在 help.ubuntu.com 上發布 Ubuntu Serverguide。對於 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]