1

我有以下问题,如果我将任何文件上传到我的网络服务器,它会自动将文件重命名为大写扩展名。例如:如果我上传图片.jpg 我的服务器会自动将其更改为图片.JPG

如果我使用<img src="picture.jpg">我的服务器返回 404 错误,但如果我使用<img src="picture.JPG">则服务器显示图像。

.htaccess 可以解决这个问题吗?与 RewriteRule 和 RewriteCond 有关吗?

RewriteCond %{HTTP_HOST} ^$\.jpg [NC]
RewriteRule ^(.*)$ $1\.JPG [R=301,L]

任何帮助将不胜感激!谢谢!

4

1 回答 1

1

尝试将此添加到文档根目录中的 htaccess 文件中:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.+)\.jpg$ 
RewriteCond %{DOCUMENT_ROOT}/%1.JPG -f
RewriteRule ^ /%1.JPG [L]

你几乎走在正确的轨道上,除了你不想匹配%{HTTP_HOST}变量(因为它只是一个主机名)。我已经添加了更多条件来首先检查如果 JPG 扩展名是大写的,那么在它重写为所有大写 JPG 之前实际上会有一个文件存在。是对第%1一个重写条件中匹配项的反向引用^/(.+)\.jpg$

于 2012-08-29T21:36:30.343 回答