我正在使用一些默认图像向用户展示所使用的文档类型。
例如,此图像显示有一个 .png 文件
在/osr/icons/mime/
文件夹中我有许多文件的图像,例如avi.png
,,,...html.png
jpg.png
因此我只需要获取当前文档的文件扩展名,然后png
显示/osr/icons/mime/png.png
如果存在我没有预定义图像的文件格式,我将使用重写条件来自动显示通用图像。
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} /osr/icons/mime/(.*).(gif|jpg|jpeg|png)$
RewriteRule ^(.*) /osr/icons/mime/generic.png
这很有效,除非文档的扩展名是大写,例如.PNG
而不是.png
。在这种情况下,我的代码尝试显示/osr/icons/mime/PNG.png
不存在的,因此显示通用图像。
有没有办法将 RewriteCond/Rule 改为回退到小写图像?
我发现如何将不区分大小写的 mod_rewrite 重定向到相同的 URL(mod 大小写)?推荐了RewriteMap insensitive tolower:
,但我不太清楚这是否/如何对我有用。使用[NC]
也没有用。
我知道以下解决方法,但我并不想使用:
- 切换到不区分大小写的文件夹文件处理
- 将文件夹中的所有文件复制为大写名称(不会考虑
.Png
) - 重写加载图像文件的代码以自动使用小写