我已经设置了 nginx,但是我需要修复当有人输入“/Home”时出现的问题:
- 将其重写为小写的“/home”(对所有文件和目录执行此操作,而不仅仅是 home)但找到大写(如果有)文件。
- 或者我需要添加另一个使用不区分大小写的字符“~*”的位置?
实际目录和文件布局确实包含大小写混合字符。为了简单起见,我想保留这一点,即 /Home 和 /About 是实际目录,但为了 SEO,我想永久重定向到小写的 /home,但找到实际的 /Home 目录。
我不确定这是否可以通过重写规则来实现,或者“位置/{ }”或某种组合是否不区分大小写。
location / {
try_files $uri $uri/ /Home;
}
答案1
正如您在问题评论中提到的,这可以通过使用 perl 模块来实现。假设您将使用它,$uri_lowercase
您可能会编写如下内容:
location / {
try_files $uri $uri/ $uri_lowercase $uri_lowercase/ =404;
}
但请注意,如果您有大小写混合的 URL,则 $uri_lowercase 可能不适合您的需求/Home/UseR/teSt.html
,并且您需要尝试所有部分小写 uri。如果您的情况如此,我强烈建议您制定一些目录政策,要求它们使用小写。