Mod_rewrite'ı sonra jpg dosyaları için HTTP başlıklarını

3 Cevap php

Ben Apache mod_rewrite benim web kök dışında bir dizine JPG dosyalar için güzergah taleplerine kullanıyorum.

It generally has been fine, but there are a few images that do not display. I then realized that when I use PHP's get_headers() function on my image URLs, they are all returning
Content-Type: text/html; charset=UTF-8 instead of the proper image/jpeg header types.

Ben Content-Type: image/jpeg başlığı ayarı açıkça denedim ve hala benim görüntülerin hiçbiri doğru başlıklarını dönmek - en doğru görüntülemek rağmen, ama neden emin değilim.

Yoluyla yönlendirme yaparken nasıl bir JPG dosyası doğru başlığı ile gönderilen temin ederim mod_rewrite?

3 Cevap

Bu yapabileceğin budur. Doğru dosyayı alacak bir PHP dosyası oluşturun ve bunu geçer

<?php 
$sImage = 'imagename.jpg';
header("Content-Type: image/jpeg");
header("Content-Length: " .(string)(filesize($sImage)) );

echo file_get_contents($sImage);

veya

<?php
$sImage = 'imagename.jpg';
$rFP = fopen($sImage, 'rb');

header("Content-Type: image/jpeg");
header("Content-Length: " .(string)(filesize($sImage)) );

fpassthru($rFP);
exit;

Ayrıca T bayrağı ile mod_rewrite ile Content-Type başlık alanını ayarlayabilirsiniz:

RewriteRule … … [T=image/jpeg]

Nasıl not.jpg olduğu imajı hakkında. Gibi. Gif, ...

Sen göndermek için hangi içerik türünü belirlemek için mime_content_type() (önerilmiyor olan) veya fileinfo uzantısı kullanmak gerekir.

Düzenleme: Ben bu önermiyoruz, ancak dosya uzantıları belirli bir alt kümesi ile çalışıyorsanız, siz de içerik türleri küçük bir sözlük dizi oluşturmak ve göndermek için hangisini belirlemek için dosya uzantısını kullanabilirsiniz.