部分大写和小写导致 URL 无法到达同一个地方?

部分大写和小写导致 URL 无法到达同一个地方?

我所在的组织有一个内容管理服务器,最近刚切换到 Apache。我不知道它之前运行的是什么,但我不确定为什么会发生以下情况,以及在切换后如何修复它。让我展示一下这个问题:

网址 1:http://example.org/1234EN.pdf

网址2:http://example.org/1234en.pdf

1234 是特定表单的编号,EN(或 en)部分表示表单使用的语言,在本例中为英语。问题是 URL 1 转到特定表单,但 URL 2 却没有转到任何地方。为了解决这个容易犯的错误,我不想创建并维护同一表单的两个版本,每个 URL 一个,因为表单的内容经常更改,然后需要为每个 URL 更新两个版本。此外,客户也不想承认用户错误,有些人无法说服他们输入大写部分。

有没有办法解决这个问题?重定向?或者有没有办法让 Apache 将末尾的小写后缀转换为大写版本?

答案1

当然,当您能够忽略大小写时,生活就会变得更加轻松,含义保持不变,对吧?

历史上:例如,Windows FAT32 文件系统保留了大小写,但不区分大小写,打开文件时不必使用与创建文件时相同的大小写,这一点与 Linux 不同。在 Linux 中,您必须使用完全相同的大小写。

但是你可以使用恰当命名的 Apache mod_speling 来调整 Apache 的行为,就好像文件系统不区分大小写一样 https://httpd.apache.org/docs/2.4/mod/mod_speling.html

<Directory /var/www/html>
    CheckCaseOnly on
    CheckSpelling on
</Directory>

相关内容