2011-05-29 19 views
9

Bir istekle .htaccessKuvvet video/webm mime türü

RewriteRule (.+?\.fid)/ /$1 [L] 

bir yeniden yazma kuralını sahip istek uri dayalı URI gibi: Ben mim türü zorlamak nasıl /123.fid/myfile.webm

: video/webm yukarıdaki kural dahil olmak üzere .htaccess kullanarak? .fid MIME türünü aramak için

AddType video/webm .webm 

ve

<FilesMatch "\.webm$"> 
    ForceType video/webm 
</FilesMatch> 

Ben Apaçi mime_magic modülü: Ben başarılı olamadı .htaccess dosyasının TOP eklemek için, zaten çalıştılar Ne

dosyaları, ancak bu webm dosyaları için geçerli değildir. Dosya türü ile ilgili sorunlara neden olan RewriteRule olduğunu varsayalım ve bir şekilde uri isteğinde webm'i aramam gerekiyor.

Yaparsam: AddType video/webm .fid doğru mime türü gönderildi - ancak bu, .fid dosyasında depolanan diğer dosya biçimlerini kırıyor. .fid kullanımı bir tasarım gereksinimidir ve değişemez.

* Düzenleme:

Ben de teşebbüs: aynı sonucu

RewriteCond %{REQUEST_URI} \.webm$ 
RewriteRule .* - [T=video/webm] 

ve

RewriteRule \.webm$ - [T=video/webm] 

. Sunulan mime türü text/plain. Bu mime_magic modül interfiering olabilir mi?

Ayrıca, aşağıdakileri de eklemeyi denedim: DefaultType video/webm. mime_magic modül göndermek için doğru mim türlerini bulmak için görünüyor bu henüz çözüme en yakın şey, ama bu Edit2

* Özellikle zarif çözüm gibi bulmuyorum: AddType video/webm .fid çalışma IS - nasıl Şartlı olarak uri'ye dayalı AddType yapabilir miyim?

+0

gerçek dosyaları veya sanal sunma URL'leri musunuz? – vbence

+0

.fid dosyaları gerçek dosyalardır, url myfile.webm –

cevap

1

Apache çalışmak için bu alınamıyor, ben vazgeçti ve taşınmış bunun yerine nginx'e. Ben kullanarak nginx çalışmak lazım:

benim .htaccess dosyaya aşağıdaki satırları ilave zaman, benim için çalıştı
location ~\.webm$ { 
    add_header Content-Type video/webm; 
    rewrite (.+?\.fid)/ /$1 break; 
} 
6

Bir RewriteRule T-bayrak kullanabilirsiniz:

RewriteRule someRegEx$ - [T=video/webm] 

http://httpd.apache.org/docs/current/rewrite/flags.html#flag_t

+2

içerecek şekilde yeniden yazabilirim. Teşekkürler. Ancak, bir şey bu .htaccess yönergesi bir yerde geçersiz kılıyor görünüyor? Benim sözdizimi kapalı değilse .. –

+0

Mod_rewrite gerçekten etkin mi? – Floern

+0

Evet, dosya sunuldu, ancak yanlış mime türü –

3

Senaryoya (gerçek değil dosyaları) sonra komut doğru başlıklarını göndermelidir ile veri gönderiyorsanız, PHP ile (örneğin başka bir çıkış öncesi):

header("Content-type: video/webm"); 
(yerine yeniden yazma) içerik müzakere kullanabilirsiniz gerçek dosyaların durumunda

ve:

AddType video/webm .fid 

Düzenleme:

Ne yazık ki değil yakın apache değilim, ama bu kudreti bir cami:

RewriteCond %{REQUEST_URI} \.webm$ 
RewriteRule (.*) $1 [E=is_webm:true] 

Header set Content-Type video/webm env=is_webm 
+0

ile dosya aracılığıyla komut dosyası göndermiyorum. Dosyalar, dosya biti ile gerçek dosyalardır .fid (ve çeşitli veri türleri içerir) –

+0

Cevabınızı yorumunuza göre düzenledim. – vbence

+0

Eğer benim yazımı biraz daha dikkatli okumuş olsaydın fark etmiş olmalısın: "Yaparsam: AddType video/webm .fid doğru mime tipi gönderilir - ancak bu, .fid dosyasında saklanan diğer dosya formatlarını bozar. bir tasarım gerekliliği ve değişemez. " –

6

:

<IfModule mod_rewrite.c> 
    AddType video/ogg .ogv 
    AddType video/webm .webm 
    AddType video/mp4 .mp4 
</IfModule> 
+0

Bu, fiziksel dosya bir .fid dosyası değil, .webm olduğu için çalışmaz .webm yalnızca –

+0

yeniden yazım aracılığıyla eklenmiştir, bu benim için çalıştı! Bu soruyu cevaplamıyor olsa da. – woony

İlgili konular