2012-01-10 20 views
12

मैं "उप/फ़ोल्डर/index.php" तक पहुंच को अवरुद्ध करना चाहता हूं, लेकिन कहीं भी "index.php" नहीं।.htaccess सबफ़ोल्डर में फ़ाइलों को अस्वीकार करें

<Files index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

काम करता है लेकिन सभी "index.php" फ़ाइलों को ब्लॉक करता है।

<Files sub/folder/index.php> 
    Order allow,deny 
    Deny from all 
</Files> 

काम नहीं करता है। क्या मुझे <Directory> का उपयोग करने की आवश्यकता है?

मैं उप में .htaccess फ़ाइल बनाने के लिए नहीं करना चाहती/फ़ोल्डर

मैं httpd.conf

मैं ब्लॉक करने के लिए नहीं करना चाहते करने के लिए पहुँच नहीं है उप/निर्देशिका

में सब कुछ यदि यह है कि आसान थे, मैं पूछ नहीं किया जाएगा;)

उत्तर

23

मुझे लगता है कि simpliest नियम है:

RedirectMatch 403 ^.*/sub/folder/index\.php$ 

RedirectMatch mod_alias मॉड्यूल में है, तो आप निश्चित रूप से है। यह mod_rewrite इंजन का तात्पर्य नहीं है। यहां हम बस अपाचे को बता रहे हैं कि उप/फ़ोल्डर/index.php तक कोई पहुंच "403 वर्जित" उत्तर उत्पन्न करेगी।

आप इसे httpd.conf या रूट में डाल सकते हैं। Htaccess (लेकिन वास्तव में सभी .htaccess को हटाने पर विचार करें, यह बुरा है, यह धीमा है, यह दुख की बात है कि आपके पास वास्तविक कॉन्फ़िगरेशन फ़ाइलों तक पहुंच नहीं है)।

+0

यह काम करता है! स्पष्ट रूप से 'रीडायरेक्ट मैच' को 'रिवाइट्रूल' – Halcyon

+0

से अलग से संभाला जाता है यदि आप प्रत्येक सबफ़ोल्डर में प्रत्येक फ़ाइल तक पहुंच को अक्षम करना चाहते हैं तो यह करें: रीडायरेक्ट मैच 403 ^। */*/* \। * $ –

+0

मिहा, मुझे लगता है कि सबसे अच्छा नियम सभी फाइलें अंत में/* $ अंत में होंगी, इस तरह जिन फाइलों में डॉट्स नहीं हैं, वे इस नियम पर भी लागू होंगे – Arruda

1

कैसे एक 01 बनाने के बारे मेंफ़ाइल में विशिष्ट फ़ोल्डर में फ़ाइल है जिसमें आप रक्षा करना चाहते हैं?

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

, सावधान रहें यह वास्तव में एक सरल .htaccess फ़ाइल में काम नहीं करता है, नीचे टिप्पणी देखें। यह केवल apache.conf फ़ाइल में काम करेगा।

यह एक और .htaccess फ़ाइल के बिना आप के लिए चाल के लिए कार्य करना चाहिए:

<Directory sub/folder> 
    <Files index.php> 
    Order allow,deny 
    Deny from all 
    </Files> 
</Directory> 
+0

मैं इस प्रश्न के दायरे से बाहर के कारणों के लिए निश्चित रूप से ऐसा नहीं करना चाहता हूं। – Halcyon

+1

फिर हाँ, आपको डायरेक्टॉय नियमों को लागू करने की आवश्यकता होगी। मैं जवाब संपादित करूँगा :) – bardiir

+2

ओह, बस उस पर ठोकर खाई कि यह केवल apache.conf फाइलों में काम करता है और नहीं। Htaccess फाइलें ... http://httpd.apache.org/docs/1.3/howto/ htaccess.html – bardiir

2

मुझे लगता है कि index.php को ब्लॉक करते हैं कि उप/फ़ोल्डर में एक और .htaccess बनाने का प्रयास करें /।

"यदि आप उप-फ़ोल्डर में .htaccess फ़ाइल डालते हैं, तो इसके निर्देश आपके साइट के मुख्य फ़ोल्डर में मौजूद लोगों को ओवरराइड कर देंगे।" http://www.besthostratings.com/articles/htaccess.html

+2

आपके द्वारा लिंक किया गया लेख उपयोगी है अगर यह पहली बार है जिसे आपने '.htacess' फ़ाइलों की अवधारणा के बारे में सुना है। यहां इतना उपयोगी नहीं है। – Halcyon

+0

उस समय आपका प्रश्न यह नहीं बता रहा था कि क्या आपने एचटीएसीएसी के साथ अपनी सभी संभावनाओं को नया किया है, इसलिए मैंने आपको ऐसा लिंक दिया है। – AKFourSeven

0

आप केवल < फ़ाइलें> वर्गों, नहीं रास्तों में फ़ाइल नामों का उपयोग कर सकते हैं:

यह पृष्ठ अधिक जानकारी के है।

तीन विकल्प हैं जिन्हें मैं देख सकता हूं;

  • फ़ाइल के समान फ़ोल्डर में एक .htaccess फ़ाइल डालें।
  • < निर्देशिका> निर्देश और < फ़ाइलों> निर्देश का उपयोग करके apache.conf में कॉन्फ़िगरेशन रखें। < निर्देशिका> .htaccess फ़ाइलों में काम नहीं करता है, केवल apache.conf
  • mod_rewrite a'la का उपयोग करके एक पुनर्लेखन नियम बनाएं;

-

RewriteEngine on 
RewriteRule ^sub/folder/index.php$ http://yoursite/index.locked 

फ़ाइल पर एक 404 देंगे, अगर आप चाहते हैं एक अनुमति नहीं दी, पढ़ने स्थान की ओर इशारा किया पर फ़ाइल संरक्षित पैदा करते हैं।

+0

दूसरा दूसरा भी आविष्कारशील है;) – Halcyon

+1

ठीक है, एक तिहाई जोड़ा गया है :) –

+0

मैंने इसके साथ खेला है और यह काम करेगा, केवल उप-निर्देशिका में एक .htaccess फ़ाइल के साथ-साथ RewrieRules भी शामिल है। तो मुझे माता-पिता में 'रिवाइटऑप्शन वारिस' और 'रिवाइटबेस' की घोषणा की आवश्यकता होगी, लेकिन मैं इसे आपूर्ति नहीं कर सकता क्योंकि मेरा पर्यावरण गतिशील है। मुझे हमेशा यह आश्चर्यजनक लगता है कि पूरी तरह से बेकार कैसे है। एचटीएसीएसी तब होती है जब आपके पास मॉड्यूलर संरचनाएं होती हैं। – Halcyon

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