2011-05-29 27 views
9

मैं एक अनुरोध के साथ .htaccessफोर्स वीडियो/webm माइम .htaccess का उपयोग कर प्रकार

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

में रीराइट नियम है यूआरआई की तरह: /123.fid/myfile.webm

मैं कैसे करने के लिए माइम प्रकार मजबूर कर सकते हैं : video/webm उपरोक्त नियम सहित .htaccess का उपयोग कर?

क्या मैं पहले से ही सफलता के बिना .htaccess फाइल के टॉप पर जोड़ने का प्रयास किया है,:

AddType video/webm .webm 

और

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

मैं अपाचे का उपयोग mime_magic मॉड्यूल .fid की माइम प्रकार को देखने के लिए फाइलें, लेकिन यह वेबएम फाइलों पर लागू नहीं होती है। मुझे लगता है कि यह रीवाइटरूल है जो फ़ाइल प्रकार के साथ समस्याएं पैदा कर रहा है, और मुझे किसी भी तरह से अनुरोध में वेबम की तलाश करनी है।

यदि मैं करता हूं: AddType video/webm .fid सही माइम प्रकार भेजा जाता है - लेकिन यह किसी भी अन्य फ़ाइल प्रारूप को .fid में संग्रहीत करता है। .fid का उपयोग एक डिजाइन आवश्यकता है और बदल नहीं सकता है।

* संपादित करें:

मैं भी प्रयास किया:

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

और

RewriteRule \.webm$ - [T=video/webm] 
एक ही परिणाम के साथ

। माइम प्रकार की सेवा text/plain है। क्या यह mime_magic मॉड्यूल interfiering हो सकता है?

मैंने यह भी जोड़ने का प्रयास किया: DefaultType video/webm जो काम करता है। यह mime_magic मॉड्यूल सही माइम प्रकार भेजने के लिए खोजने के लिए लगता है के रूप में, वर्तमान में एक समाधान के लिए निकटतम बात है, लेकिन मैं इस एक विशेष रूप से सुरुचिपूर्ण समाधान

* EDIT2 होने के लिए भी नहीं मिलता है: AddType video/webm .fid काम कर रहा है - कैसे क्या मैं सशर्त रूप से अनुरोध यूरी के आधार पर AddType कर सकता हूं?

+0

आप वास्तविक फ़ाइलें, या आभासी यूआरएल की सेवा कर रहे हैं? – vbence

+0

.fid फ़ाइलें वास्तविक फ़ाइलें हैं, जबकि मैं urfile.webm –

उत्तर

1

इस पाने के लिए अपाचे में काम करने में असमर्थ है, मैं छोड़ दिया और चले गए इसके बजाय nginx करने के लिए। मैं इसे का उपयोग nginx में काम मिल गया:

location ~\.webm$ { 
    add_header Content-Type video/webm; 
    rewrite (.+?\.fid)/ /$1 break; 
} 
6

आप एक RewriteRule में टी ध्वज का उपयोग कर सकते हैं:

RewriteRule someRegEx$ - [T=video/webm] 

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

+2

शामिल करने के लिए यूआरएल को फिर से लिखता हूं धन्यवाद, मैंने इसे एक शॉट दिया। हालांकि, ऐसा लगता है कि कुछ इस पर ओवरराइड कर रहा है। Htaccess निर्देश कहीं कहीं? जब तक मेरा वाक्यविन्यास बंद न हो .. –

+0

क्या mod_rewrite वास्तव में सक्षम है? – Floern

+0

हां, फ़ाइल परोसा जाता है, लेकिन गलत माइम प्रकार –

3

आप एक स्क्रिप्ट (नहीं असली फ़ाइलें) तो स्क्रिप्ट सही हेडर भेजना होगा साथ डेटा भेज रहे हैं, पीएचपी साथ (उदाहरण के लिए किसी अन्य उत्पादन से पहले):

header("Content-type: video/webm"); 

आप सामग्री-बातचीत (पुनर्लेखन के बजाय) का उपयोग कर सकते वास्तविक फ़ाइलों के मामले में और:

AddType video/webm .fid 

संपादित करें:

दुर्भाग्य से मैं पास नहीं अपाचे हूँ, लेकिन एक कोशिश यह हो सकता है लायक:

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

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

के साथ मैं स्क्रिप्ट के माध्यम से फ़ाइलें नहीं भेज रहा हूं। फाइलें फाइलें समाप्त होने वाली वास्तविक फाइलें हैं। एफआईडी (और विभिन्न प्रकार के डेटा प्रकार हैं) –

+0

मैंने आपकी टिप्पणी के अनुसार उत्तर संपादित किया। – vbence

+0

यदि आपने मेरी पोस्ट को थोड़ी अधिक सावधानी से पढ़ा है तो आपको ध्यान रखना चाहिए था: "यदि मैं करता हूं: AddType वीडियो/webm। सही माइम प्रकार भेजा गया है - लेकिन यह .fid में संग्रहीत किसी अन्य फ़ाइल प्रारूप को तोड़ता है। Fid का उपयोग करना है। एक डिजाइन की आवश्यकता है और बदल नहीं सकते हैं। " –

6

यह मेरे लिए काम किया, जब मैं अपने .htaccess फाइल करने के लिए निम्नलिखित लाइनों कहा:

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

यह काम नहीं करता है, क्योंकि भौतिक फ़ाइल एक .fid फ़ाइल है, नहीं .webm - .webm केवल –

+0

के माध्यम से जोड़ा गया है धन्यवाद यह मेरे लिए काम करता है! हालांकि यह इस सवाल का जवाब नहीं देता है। – woony