首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache web server -如何剥离语言扩展

Apache web server -如何剥离语言扩展
EN

Ask Ubuntu用户
提问于 2019-06-20 21:39:52
回答 1查看 112关注 0票数 2

这个问题与在help.ubuntu.com上发布Ubuntu指南有关。对于20.04 LTS周期,Ubuntu source指南的源代码工作流将有重大更改(可以)。目前,没有考虑为这一迁移提供翻译。我们最好的反馈是服务器管理员更喜欢英语,即使它不是他们的第一语言。在这个决定变得不可逆之前,我们希望通过下一个18.04 Ubuntu指南的点版本来测试它。一切都准备好了,除了一个问题:

我们可以肯定地知道,随着语言的扩展,许多链接、书签等等都存在。示例:

https://help.ubuntu.com/lts/serverguide/networking.html.en-CA

我们希望让这个场景返回这个页面:

https://help.ubuntu.com/lts/serverguide/networking.html

因为语言特定的版本将不再存在,但是返回404未找到的错误是不可取的。

.htaccess文件的当前版本(将以前的尝试注释掉)是:

代码语言:javascript
复制
# 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

其结果是:

代码语言:javascript
复制
500 Internal Server Error

到客户机,在测试服务器日志中这样做:

代码语言:javascript
复制
[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)\\.*注意,当前的尝试带有语言扩展的通配符。如果这是不可能的,那么语言列表是:A5有人能帮忙吗?, referer: http://my-test-website/~doug/linux/ubuntu-docs/help.ubuntu.com/dev/index.html

注意,当前的尝试带有语言扩展的通配符。如果这是不可能的,那么语言列表是:

A5

有人能帮忙吗?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-06-20 21:51:37

代码语言:javascript
复制
RewriteRule ^(.*.html)\..*$ $1    

这会将/foobar.html.anything重写为/foobar.html,并且似乎可以做您想做的事情。

如果它是永久的,您可能应该发送301:

代码语言:javascript
复制
RewriteRule ^(.*.html)\..*$ $1 [R=301]
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1152720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档