对于 20.04,Ubuntu 服务器指南已移至新位置。重定向已添加到 .htaccess 文件中。但是,它们不适用于所有 URL。
请注意,help.ubuntu.com 的相关部分每天仅从主启动板分支发布一次。目标是做到这一点,因为我昨天显然没有做到这一点。
工作示例:
https://help.ubuntu.com/20.04/serverguide/remote-administration.html.fr
去:
https://ubuntu.com/server/docs
不工作的例子:
https://help.ubuntu.com/20.04/serverguide/remote-administration.html
返回 404 未找到。
.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
它似乎需要语言扩展才能工作。这行得通吗?
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
我没有办法在我的测试服务器上对此进行测试,并希望在下一个出版物中正确使用它。
编辑:通过删除表达式的“行首”部分,事实证明我可以在我的测试服务器上调试它,该位置是几个子目录。通过 Muru 的答案测试和我自己的测试,有是对解决方案的信心。
参考资料:
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
Apache Web 服务器 - 如何去除语言扩展
在
RedirectMatch
(andAliasMatch
) 中,正则表达式与 URL 匹配。它不必匹配整个 URL,除非使用^
and锚定这样做$
。所以,是的,你的建议:将匹配
/20.04/serverguide/remote-administration.html.fr
和/20.04/serverguide/remote-administration.html
。它也将匹配/20.04/serverguide/remote-administration.html.frfoobar
,但随后,原始版本也匹配。如果你安装了 Docker,测试起来并不难:
获取 docker 镜像和 Apache conf:
my-httpd.conf
到块AllowOveride All
中<Directory "/usr/local/apache2/htdocs">
创建您的 htaccess 文件:
创建一些测试用例:
运行阿帕奇:
针对此本地 apache 服务器测试您的 URL: