2010-01-01 20 views
5

मुझे वेबसाइट पर छवि निर्देशिका की निर्देशिका सूची को रोकने की आवश्यकता है। मैं साइट पर छवियों और जावास्क्रिप्ट के लिए cookieless डोमेन को विन्यस्त कर रहा हूं। मैंने CNAME कॉन्फ़िगरेशन किया है और httpd.conf फ़ाइल में वर्चुअल होस्ट कॉन्फ़िगरेशन के नीचे जोड़ा गया है। लेकिन, अगर मैं सीधे इस cookieless डोमेन तक पहुंचता हूं, तो इसकी संपूर्ण निर्देशिका सामग्री सूचीबद्ध होती है। इस समस्या को हल कैसे करें?अपाचे विकल्प- इंडेक्स कॉन्फ़िगरेशन काम नहीं कर रहा है

 
<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

<VirtualHost ipaddr:80> 
    ServerAdmin [email protected] 
    ServerName imgs.site.com 
    ServerAlias www.imgs.site.com imgs.site.net 
    DocumentRoot /usr/tomcat/webapps/site/images 

    <Directory /usr/tomcat/webapps/site/images> 
     Options -Indexes FollowSymLinks 
     AllowOverride none 
    </Directory> 

    CustomLog logs/imgs.site.com_access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
    ErrorLog logs/imgs.site.com_error_log 
</VirtualHost> 

उत्तर

1

एक त्वरित समाधान का मनमाने ढंग से सामग्री के साथ निर्देशिका में कोई index.html फ़ाइल डाल करने के लिए, है। इंडेक्सिंग निर्देशिका सूची के बजाय इस फ़ाइल की सामग्री प्रदर्शित करेगा।

7

मुझे लगता है कि Directory निर्देश में पथ DocumentRoot में जोड़ा गया है, इसलिए आप वास्तव में अपाचे को /usr/tomcat/webapps/site/images/usr/tomcat/webapps/site/images इंडेक्स करने का आदेश नहीं देते हैं। बजाय निम्नलिखित विन्यास का प्रयास करें:

DocumentRoot /usr/tomcat/webapps/site 

<Directory ~ "/.*/"> 
    Options -Indexes 
</Directory> 

यह, /usr/tomcat/webapps/site के तहत सभी फ़ोल्डर में निर्देशिका अनुक्रमण अक्षम करना चाहिए जैसे। /usr/tomcat/webapps/site/images/, /usr/tomcat/webapps/site/fubar/ और इसी तरह।

+2

> मुझे लगता है कि में उस पथ 'निर्देशिका' निर्देश 'दस्तावेज़ रूट' में जोड़ा गया है << ऐसा प्रतीत होता है कि मैं गलत था: "निर्देशिका-पथ' या तो निर्देशिका के लिए * पूर्ण पथ * है, या यूनिक्स शैल-शैली मिलान का उपयोग कर जंगली-कार्ड स्ट्रिंग" (http://httpd.apache.org/docs/2.2/mod/core.html#directory)। तो, मेरा उदाहरण केवल इसलिए काम करता है क्योंकि यह मेजबान के भीतर * प्रत्येक निर्देशिका * से मेल खाता है। – hudolejev

1
Options -Indexes FollowSymLinks 

अपाची 2.0 और Apache 2.2 docs से:

चेतावनी
मिश्रण Options के साथ एक + या - बिना उन के साथ मान्य सिंटैक्स नहीं है, और अप्रत्याशित कारण होने की संभावना है परिणाम है।

Apache 2.4 में यह हो जाएगा ...

... एक बीच में बंद करें साथ वाक्य रचना चेक द्वारा सर्वर स्टार्टअप के दौरान खारिज कर दिया।

तो, आप मूल रूप से FollowSymLinks के सामने एक + जरूरत है (या Indexes के सामने - को दूर करता है, तो आप ओवरराइड पिछले निर्देशों करना चाहते हैं।):

Options -Indexes +FollowSymLinks 
+0

मुझे आश्चर्य है कि अगर हम निर्देशिका इंडेक्सिंग नहीं करना चाहते हैं तो '-इंडेक्स' का उपयोग करना आवश्यक है। क्या हम इंडेक्स को शामिल नहीं कर सकते? और इस तरह के विकल्प हैं: 'विकल्प FollowSymLinks' –

संबंधित मुद्दे