के माध्यम से .hg/* तक पहुंच से इनकार करें मेरी वेबसाइट एकाधिक subrepositories के साथ एक mercurial भंडार है। मुझे यह सुनिश्चित करने की ज़रूरत है कि मैं सर्वर पर प्रत्येक .hg निर्देशिका में सभी फ़ाइलों तक पहुंच से इंकार कर रहा हूं।सुरक्षा: mod_rewrite
उदाहरण के लिए, मैं http://example.com/.hg/
और http://example.com/subrepo1/.hg/
है मैंने जोड़ा .htaccess के लिए निम्न:
<Files ~ "^\.(hg|ht)">
Order allow,deny
Deny from all
</Files>
यह एक अच्छी शुरुआत है, के रूप में यह .hg
और .ht
के साथ शुरुआत फ़ाइलों तक पहुँच से इनकार करते हैं , लेकिन यह .hg
निर्देशिकाओं के अंदर फ़ाइलों तक पहुंच से इंकार नहीं करता है, इसलिए अगर कोई टाइप करता है, उदाहरण के लिए http://example.com/.hg/branch
, शाखा फ़ाइल उनके ब्राउज़र में प्रदर्शित की जाएगी।
यह सुनिश्चित करने के लिए कि इन फ़ाइलों को उपयोगकर्ता को प्रदर्शित नहीं किया गया है, मुझे क्या करने की आवश्यकता है? यदि कोई मेरे सर्वर पर किसी भी .hg
निर्देशिका के अंदर फ़ाइल तक पहुंचने का प्रयास करता है तो मैं ब्राउज़र पर 403 या 404 वापस भेजना चाहता हूं।
यह प्रश्न किसी भी व्यक्ति के लिए भी प्रासंगिक है जिसकी वेबसाइट एक उपवर्तन/svn भंडार है।
RedirectMatch 404 /\\.hg(/|$)
:
जब मैं निर्देशिका, निर्देशिका मैच, स्थान या स्थान मैच के साथ कुछ भी कोशिश करता हूं तो मुझे 500 त्रुटि मिलती है, इसलिए मुझे लगता है कि इसे .htaccess के अंदर अनुमति नहीं है। हालांकि, RedirectMatch एक आकर्षण की तरह काम करता है। धन्यवाद! – Tex
@Tex - मैं इसे संपादित कर दूंगा - ऐसा लगता है कि एसवीएन प्रश्न से ओपी को 'डायरेक्टरीमैच' को भी काम करने में परेशानी थी। –
मेरी समझ यह है कि .htaccess में 'निर्देशिका',' DirectoryMatch', 'location' और' LocationMatch' की अनुमति नहीं है। – Tex