我有以下问题,如果我将任何文件上传到我的网络服务器,它会自动将文件重命名为大写扩展名。例如: 如果我上传picture.jpg,我的服务器会自动将其更改为picture.JPG
如果我使用<img src="picture.jpg">
我的服务器返回404错误,但如果我使用<img src="picture.JPG">
,则服务器会显示图像。
.htaccess可以解决这个问题吗? RewriteRule和RewriteCond的东西?
RewriteCond %{HTTP_HOST} ^$\.jpg [NC]
RewriteRule ^(.*)$ $1\.JPG [R=301,L]
任何帮助将不胜感激! 谢谢!
答案 0 :(得分:1)
尝试将此添加到文档根目录中的htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.+)\.jpg$
RewriteCond %{DOCUMENT_ROOT}/%1.JPG -f
RewriteRule ^ /%1.JPG [L]
你几乎走在正确的轨道上,除了你不想与%{HTTP_HOST}
变量匹配(因为它只是一个主机名)。我已经添加了一些更多的条件来检查,如果JPG扩展名大写,那么在它重写为所有大写JPG之前实际上会有一个文件。 %1
是第一次重写条件^/(.+)\.jpg$
中匹配的反向引用。