【问题标题】:Show lowercase url in .htaccess with uppercase file names在 .htaccess 中显示带有大写文件名的小写 url
【发布时间】:2022-01-06 11:03:22
【问题描述】:

在我的 .htaccess 文件中,我有以下代码:

RewriteMap tolowercase int:tolower 
RewriteRule ^(.*)$ ${tolowercase:$1} [R=301,L]

发件人:htaccess Uppercase URL to lowercase

这会将网址从大写更改为小写,对我来说效果很好。

我现在想要的是我可以将我的文件名保持为大写,但我的服务器会打开文件(名称中带有大写字母)并显示一个不带大写字母的 url。

我通过互联网和这个平台等搜索了解决方案,但最终我找到了解释如何将 url 转换为不带大写字母的 url 的页面。现在我也想要这个,但是他必须打开文件名中带有大写字母的文件。

【问题讨论】:

  • Aside: 发布的指令仅适用于 server(或 virtualhost)上下文,不适用于 @987654323 @如上所述。

标签: php .htaccess server uppercase lowercase


【解决方案1】:

所以基本上你想打开没有大写字母的 URL,所以它可以使用大写字母文件名?逻辑上是不可能的。大多数操作系统中的文件名都区分大小写。当您询问text.txt 时,它可以参考Text.txtTEXT.txtTEXT.TXTtext.TXT 或不同的组合......服务器如何决定哪一个?从逻辑上讲,您尝试做的事情没有任何意义,也不会奏效。 URL 重写不仅与 URL 栏中显示的内容有关,还会影响请求本身。

解决方案是将地址栏中的 URL 更改为 JavaScript(在服务器处理请求之后),但然后想象一个人想要刷新站点 - 会遇到与上述相同的问题。

【讨论】:

  • “大多数操作系统中的文件名都区分大小写”,除了... Windows。因此,另一种解决方案是切换到 Windows 服务器!
  • @MrWhite 是的,没错,但这有很多缺点,也应该提到。
猜你喜欢
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多