2011-03-08 9 views
12

AddOutputFilterByType अपाचे में बहिष्कृत है।अपाचे AddOutputFilterByType को बहिष्कृत किया गया है। Mod_filter का उपयोग करके फिर से लिखना है?

प्रलेखन का कहना है कि समान कार्यक्षमता mod_filter का उपयोग कर उपलब्ध है।

मैं वर्तमान में

AddOutputFilterByType DEFLATE text/html 

mod_filter का उपयोग कर बराबर क्या है का उपयोग करें?

उत्तर

4

मैं डिफ्लेटिंग के बजाय प्रतिस्थापन के लिए mod_filter का उपयोग कर रहा हूं, लेकिन विचार समान है।

LoadModule substitute_module modules/mod_substitute.so 
LoadModule filter_module modules/mod_filter.so 
FilterDeclare MYFILTER 
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $text/ 
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/xml 
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/json 
FilterProvider MYFILTER SUBSTITUTE resp=Content-Type $/javascript 
<Location /sial/> 
    ProxyPass  http://localhost:8300/ 
    ProxyPassReverse http://localhost:8300/ 
    ProxyPassReverseCookiePath//sial/ 
    FilterChain MYFILTER 
    Substitute "s|/tea_sial_v2|/sial/tea_sial_v2|inq" 
</Location> 
14

AddOutputFilterByType तो यह वहाँ पदावनत चिह्नित किया गया था httpd-2.2 में गंभीर सीमाएं था: यह वही है (मैं रिवर्स प्रॉक्सी कर रहा हूँ और यूआरएल और लिंक को फिर से लिखने) मेरे लिए काम किया है। लेकिन httpd-2.4 में यह निर्देश filter_module पर ले जाया गया, सही और अप्रत्याशित।

Apache 2.2 में आप के बजाय सक्षम होना चाहिए filter_module और deflate_module और उपयोग:

# Declare a "gzip" filter, it should run after all internal filters like PHP or SSI 
FilterDeclare gzip CONTENT_SET 

# "gzip" filter can change "Content-Length", can not be used with range requests 
FilterProtocol gzip change=yes;byteranges=no 

# Enable "gzip" filter if "Content-Type" contains "text/html", "text/css" etc. 
FilterProvider gzip DEFLATE resp=Content-Type $text/html 
FilterProvider gzip DEFLATE resp=Content-Type $text/css 
FilterProvider gzip DEFLATE resp=Content-Type $text/javascript 
FilterProvider gzip DEFLATE resp=Content-Type $application/javascript 
FilterProvider gzip DEFLATE resp=Content-Type $application/x-javascript 

# Add "gzip" filter to the chain of filters 
FilterChain gzip 

deflate_module केवल ब्राउज़रों कि अनुरोध हेडर में gzip एन्कोडिंग के लिए समर्थन की घोषणा करने के संकुचित सामग्री में काम करेगा।

+1

यह मैं bigtime में मदद की। फ़िल्टरप्रोवाइडर पर बस एक सिर: https://github.com/h5bp/html5-boilerplate/issues/1012 – cgp

+0

Centos filter_module डिफ़ॉल्ट रूप से सक्षम नहीं है। असम्बद्ध होने की आवश्यकता है। –

+0

इसने ईटैग को यादृच्छिक रूप से gzipped प्रतिक्रियाओं से गायब कर दिया। – Timothy003

2

यह अपाचे 2.3.7 में अन-बहिष्कृत हो गया है, क्योंकि इसे mod_filter में स्थानांतरित/एकीकृत किया गया था।

बजाय:: तो, क्या मैं में मिल गया है

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/css 
</IfModule> 

का उपयोग कर:

<IfModule mod_filter.c> 
    AddOutputFilterByType DEFLATE text/css 
</IfModule> 
संबंधित मुद्दे