Apache2: 'AH01630: क्लाइंट सर्वर कॉन्फ़िगरेशन से वंचित'


429

ब्राउज़र के माध्यम से लोकलहोस्ट को एक्सेस करने की कोशिश करने पर मुझे यह त्रुटि मिलती है।

AH01630: client denied by server configuration

मैंने अपनी साइट फ़ोल्डर अनुमतियों की जाँच की:

sudo chmod 777 -R *

यहाँ मेरी कॉन्फ़िगरेशन फ़ाइल है:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user-name/www/myproject
<Directory />
    Options FollowSymLinks
    AllowOverride all
    Allow from all
</Directory>

<Location />
  Allow from all
  Order Deny,Allow
</Location>

<Directory  /home/user-name/www/myproject/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride all
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>


1
क्या आप नई Apache 2.4 का उपयोग कर रहे हैं? वह रास्ता कौन सी त्रुटि देता है?
anadel

12
ऐसा लगता है कि आपको अपने कॉन्फ़िगरेशन को अपडेट करने की आवश्यकता है। यहां देखें: httpd.apache.org/docs/2.4/upmission.html#run-time
anadel

5
कृपया भाव इस पर एक नज़र: dabase.com/blog/AH01630:_client_denied_by_server_configuration
ईसाई मुलर

7
chmod 777एक बहुत बुरी आदत है, भले ही (माना जाता है) केवल उदाहरणों में इस्तेमाल किया जा रहा है।
एंटोनी क्रिस्टोफ़ाइड्स

3
chmod 777 इसका उत्तर नहीं है।
आरोन मैकमिलिन

जवाबों:


770

यदि आप Apache 2.4 का उपयोग कर रहे हैं

आपको अनुमति और नियमों से इनकार करना होगा

की जाँच करें http://httpd.apache.org/docs/2.4/upgrading.html#access

2.2 में, क्लाइंट होस्टनाम, आईपी एड्रेस और क्लाइंट रिक्वेस्ट की अन्य विशेषताओं के आधार पर एक्सेस कंट्रोल डायरेक्शंस ऑर्डर, अनुमति, अस्वीकार और संतुष्ट का उपयोग करके किया गया था।

2.4 में, नए मॉड्यूल mod_authz_host का उपयोग करते हुए, अन्य प्राधिकरण जांचों की तरह ही इस तरह का एक्सेस कंट्रोल किया जाता है।

नए निर्देश की आवश्यकता है :

2.2 विन्यास:

Order allow,deny
Allow from all

2.4 कॉन्फ़िगरेशन:

Require all granted

इन परिवर्तनों के बाद अपाचे सर्वर को पुनः आरंभ करना न भूलें ( # service httpd restart)


2
OSX 10.10 योसेमाइट का उपयोग Apache 2.4
मैथ्यू हर्बस्ट

2
के विन्यास क्या (? यानी जहां करता है "की आवश्यकता होती है सभी दी" जाने कुछ .conf फ़ाइल में)
एलेक्सिस

1
@ एलेक्सिस निर्देशिका (या स्थान)। अगले उत्तर में देखें स्क्रीनशॉट
अजनबी

2
मेरे मामले में मेरे पास DocumentRootऔर <Directory>पथ में त्रुटि है ।
रोमन ग्रिनोव

4
एक बात ध्यान दें: यदि आप ऑनलाइन कॉन्फ़िगरेशन की बात कर रहे हैं, तो संभावना है कि उन्होंने दोनों का उपयोग किया है Order allow,deny ...और Require all granted। यह काम नहीं करेगा। यह आपके संस्करण के आधार पर इनमें से केवल एक होना चाहिए। बस यही बात मुझे अपने मुद्दे को सुलझाने से रोक रही थी।
विष्णु नारंग

299

के Require all grantedबजाय सभी निर्देशिकाओं के लिए लिखेंAllow from all कुछ इस तरह

अपडेट करें

यदि ऊपर काम नहीं करता है तो नीचे दी गई लाइन को भी हटा दें:

आदेश की अनुमति, इनकार


14
मेरे लिए एक बार काम करने के बाद मैंने Order allow,denyरेखा को भी हटा दिया था ।
कैस्परल्ड

ध्यान दें: का उपयोग करते समय HTTPS , एक को विन्यस्त VirtualHost बंदरगाह के लिए 443 , मैं एक ही कॉन्फ़िगरेशन को दोहराने के लिए किया था <Location /media> Require all granted </Location>पर default-ssl.confके लिए मेरे सीएसएस लोड करने के लिए। (मेरी समस्या यह थी कि लॉगिन पृष्ठ सुलभ था, लेकिन कोई सीएसएस और न ही अन्य मीडिया फ़ाइलें लोड नहीं की गईं ...)
युरिक

1
OSX 10.10 योसेमाइट का उपयोग Apache 2.4
मैथ्यू हर्बस्ट

7
क्या मैं केवल एक ही हूं जो किसी को लॉग में किसी भी आउटपुट के बिना अपाचे कॉन्फ़िगरेशन को तोड़ता है। (हे लड़कों, Allow from Allसेवानिवृत्त हो गया है क्योंकि .... कारण ...)
वॉरेन पी

धन्यवाद - "आदेश की अनुमति, इनकार" को हटाने में मदद
श्रीविलेय

34

डबल चेक करें कि DocumentRoot पथ सही है। जो इस त्रुटि का कारण बन सकता है।


3
विशेष रूप से, मैंने पाया कि यह मेरी समस्या थी क्योंकि मुझे अपने डॉक्यूमेंटरूट घोषणा में कोई पीछे नहीं हटना था, लेकिन <Directory>ब्लॉक में एक का उपयोग किया था । मेरे कुछ मामले मतभेद भी थे। एक बार जब मैंने इन दोनों मूल्यों को एक दूसरे की कार्बन प्रतियां (अनुगामी स्लेश के बिना) बनाया, तो यह पूरी तरह से काम कर गया।
एडम टटल ने

अगर ऐसा है (हाँ, यहाँ भी हुआ ....) आप में follwing लाइन पा सकते हैं apache/logs/error.log:AH00112: Warning: DocumentRoot [E:/xampp/htdocs/website/frontend/web] does not exist
Piemol

खिचड़ी भाषा का मानना ​​है कि मैं अपनी टाइपो गलतियों के लिए भी जवाब पा सकता हूं :-) इसे लाने के लिए धन्यवाद, मेरी समस्या मेरी गोपनीय फ़ाइल में अमान्य पथ थी।
ताहिर

21

मैंने वही बदलाव किए जो कि ravisorg ने OSX 10.10 Yosemite को सुझाए थे जो Apache को 2.4 वर्जन में अपग्रेड करते हैं। नीचे http.conf में जोड़े गए परिवर्तन हैं।

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory /Volumes/Data/Data/USER/Sites/>
    AllowOverride none
    Require all granted
</Directory>

11

इसने मुझे डेढ़ दिन के लिए बिल्कुल पागल कर दिया लेकिन मुझे एक समाधान मिला अगर अन्य सभी समाधानों को असफल करने की कोशिश की गई है।

यह macOS के लिए है।

  • गतिविधि पर जाएं मॉनिटर (स्पॉटलाइट सर्च फॉर: एक्टिविटी)
  • Httpd के लिए एक्टिविटी मॉनिटर सर्च में जो अपाचे सर्विस है
  • जो रूट का है उसे चुनें और उसे बंद करने के लिए बाईं ओर X पर क्लिक करें।

उस समय मैंने तुरंत 403 त्रुटियां करना बंद कर दिया और सब कुछ उम्मीद के मुताबिक काम करना शुरू कर दिया। अजीब बात यह है कि मुझे अभी भी अपाचे को पुनः आरंभ करने की आवश्यकता नहीं है, मैंने यह काम किया है, मुझे लगता है कि जब मैं अपने लोकलहोस्ट में गया था तब मैंने इसे फिर से शुरू किया था, मुझे ईमानदारी से पता नहीं है लेकिन मुझे लगता है कि समस्या यह है कि अपाचे को पुनः आरंभ करते समय अपाचे वास्तव में पुनरारंभ नहीं होता है, या बंद करो या शुरू करो। आशा है कि यह किसी की मदद करता है।


1
समय बर्बाद करने के घंटों के बाद यह मेरे मुद्दों को भी हल किया है।
कभी भी

10

समस्या VirtualHost में है, लेकिन संभावित रूप से नहीं है

सभी की आवश्यकता है

अपने कॉन्फ़िगरेशन की पुष्टि करें सही है, यहां सही नमूना है यहां छवि विवरण दर्ज करें


<Directory ...> ... </Directory>मेरे लिए काम करने वाली लाइनों को शामिल करने के बाद से मैं एक निर्देशिका पथ का उपयोग कर रहा था जो पहले अपाचे कॉन्फ़िगरेशन में पहले परिभाषित नहीं था।
डॉन विल्सन

4

यदि आप त्रुटि लॉग को पूंछते हैं और पृष्ठ को फिर से लोड करते हैं, तो आपको सटीक समस्या के रूप में कुछ और जानकारी देखनी चाहिए।

पर्यावरण चर को पकड़ो इसलिए $ {APACHE_LOG_DIR} वास्तव में काम करेगा ...

source /etc/apache2/envvars

फिर पूंछो और देखो ...

tail -f ${APACHE_LOG_DIR}/error.log

5
यह लॉग से त्रुटि है: 'ग्राहक सर्वर विन्यास से इनकार AH01630'
हेज़ेम Hagrass


6
यदि आप LogLevel debugVirtualHost में इसे जोड़ते हैं, तो यह अच्छी सलाह है, क्योंकि तब आपको "सभी अस्वीकृत: अस्वीकृत" और "<आवश्यकताएँ>: अस्वीकृत" जैसी लाइनें दिखाई देंगी (अर्थात सर्वर कॉन्फ़िगरेशन द्वारा अस्वीकृत ग्राहक की तुलना में बहुत अधिक उपयोगी है), जैसा कि यह वास्तव में आपको बताता है कि कौन सा विन्यास!)
डैरेन कुक

4

मैंने कुछ घंटे बिताने के बाद अपने आप को सुलझा लिया।

मैंने योनि वीएम में कोकबुक के माध्यम से अपाचे / 2.4.7 (उबंटू) स्थापित किया।

/etc/apache2/apache2.conf फ़ाइल <VirtualHost *:80>में डिफ़ॉल्ट रूप से तत्व नहीं है ।

मैंने इसे पूरा करने के लिए दो बदलाव किए

  1. जोड़ा <VirtualHost *:80>
  2. जोड़े गए
    विकल्प अनुक्रमणिका FollowSymLinks
    AllowOverride सभी से
    अनुमति दें

तो अंत में मैं सिर्फ vm बूट किया ..


4

क्या किसी ने उस wamp सर्वर डिफ़ॉल्ट के बारे में सोचा है जिसमें httpd-vhosts.confफ़ाइल शामिल नहीं है । मेरा दृष्टिकोण नीचे नोट को हटाने के लिए है

 conf
  # Virtual hosts
  Include conf/extra/httpd-vhosts.conf

में httpd.confफ़ाइल। बस इतना ही।


+1 यह मेरे लिए भी काम किया लेकिन शायद एक बेहतर समाधान है रखने के लिए conf/extra/httpd-vhosts.confफ़ाइल और उस में की जगह Require localके साथRequire all granted
एलेक्स Pandrea

4

मेरे मामले में,

मैं macOS Mojave (Apache / 2.4.34) का उपयोग कर रहा हूँ। /Etc/apache2/extra/httpd-vhosts.conf फ़ाइल में वर्चुअल होस्ट सेटिंग्स में कोई समस्या थी। आवश्यक निर्देशिका टैग जोड़ने के बाद मेरी समस्या दूर हो गई थी।

सभी की आवश्यकता है

आशा है कि पूर्ण वर्चुअल होस्ट सेटअप संरचना आपको बचाएगा।

<VirtualHost *:80>
    DocumentRoot "/Users/vagabond/Sites/MainProjectFolderName/public/"
    ServerName project.loc

    <Directory /Users/vagabond/Sites/MainProjectFolderName/public/>
        Require all granted
    </Directory>

    ErrorLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-error_log"
    CustomLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-access_log" common
</VirtualHost>

आपको केवल अपने सटीक प्रोजेक्टफ्रेमनाम से MainProjectFolderName को बदलना है।


2

यह मुझे पागल कर रहा था। अंत में पता चला कि समस्या क्या थी: मैं त्रुटि लॉग के लिए सीधे रास्तों का उपयोग कर रहा था और वे गलत थे।

अपाचे एक अस्पष्ट (और गलत) त्रुटि संदेश क्यों देता है? इसके बजाय एक सही और उपयोगी त्रुटि संदेश का उपयोग करें: ErrorLog निर्देश के लिए पथ "/wrong/path/and/filename.log" अमान्य है।

वैसे भी, यह सुनिश्चित करने के लिए कि आपकी त्रुटि लॉग निर्देश कुछ इस तरह दिखते हैं:

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

2

अगर आप विंडोज़ ओएस पर WampServer में Apache 2.4 का इस्तेमाल कर रहे हैं।

आपको नोटपैड में https-vhosts.conf फाइल को खोलना होगा ।

C:\wamp64\bin\apache\apache2.4.37\conf\extra\https-vhosts.conf 

यदि आप ऊपर फाइल खोजने में असमर्थ हैं। नीचे स्क्रीनशॉट चेक करें वैंपसर अपाचे 2.4 httpd-vhosts

 <VirtualHost *:80>
     ServerName localhost
     DocumentRoot c:/wamp64/www
     <Directory  "c:/wamp64/www/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

उपरोक्त कोड में बदलें

Require local

साथ में

Require all granted

और इसे सेव करें। अपाचे सेवा को पुनरारंभ करें और फिर से प्रयास करें।


2

मेरे लिए, मैंने वास्तव में 2.4 मानक के आधार पर अनुमति और इनकार नियमों को अपडेट किया था।

Require all granted

हालाँकि, यह अभी भी मुझे वही AH01630 त्रुटि प्राप्त करने का कारण बना रहा था। मुझे एक और धागा मिला और उसने Apache2 को फिर से स्थापित करने का सुझाव दिया। किसी तरह यह काम किया! अगर किसी को यह समझाने की परवाह है कि क्यों, यह मददगार होगा।

क्रेडिट: AH01630: क्लाइंट सर्वर कॉन्फ़िगरेशन से वंचित है, लेकिन सभी की आवश्यकता है सेट किया गया है (Apache 2.4, CentOs)


1

अगर आपके पास https होस्ट है तो बनाना न भूलें Require all granted ssl config के लिए भी बदलाव ।

इसके अलावा, कभी-कभी यह अपाचे उपयोगकर्ता के रूप में अनुमतियों की जांच करने के लिए उपयोगी होता है:

# ps -eFH | grep http # get the username used by httpd
...
apache   18837  2692  0 119996 9328   9 10:33 ?        00:00:00     /usr/sbin/httpd -DFOREGROUND
# su -s/bin/bash apache # switch to that user
bash-4.2$ whoami
apache
bash-4.2$ cd /home
bash-4.2$ ls
bash-4.2$ cd mysite.com
bash-4.2$ ls
bash-4.2$ cat file-which-does-not-work.txt

1

Wamp 3 (Apache 2.4) के लिए, सर्वर को अन्य उत्तरों में वर्णित ऑनलाइन के अलावा, वर्चुअल होस्ट फ़ाइल में conf/extra/httpd-vhosts.conf
आपको बदलने की आवश्यकता होगी

Require local

साथ में

Require all granted



यदि httpd.confआपके पास यह लागू है

Include conf/extra/httpd-vhosts.conf

1

उबंटू की जाँच करते समय कि क्या CGI मॉड्यूल सक्षम है। अगर नहीं:

sudo a2enmod cgi

CGI मॉड्यूल को सक्षम करने की आवश्यकता है। कार्यक्रम अंत में काम किया।
स्टीव आर।

1

सुनिश्चित करें कि कोई भी उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन शामिल हैं!

यदि आपके काम के लिए इस पृष्ठ पर कोई भी अन्य उत्तर नहीं है, तो इधर-उधर भटकने के घंटों के बाद मैंने यहां क्या किया।

मैंने Sitesअपने रूप UserDirमें निर्दिष्ट के साथ उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन का उपयोग किया /private/etc/apache2/extra/httpd-userdir.conf। हालाँकि, मुझे समापन बिंदु तक पहुंचने की मनाही थीhttp://localhost/~jwork/

मैं देख सकता था /var/log/apache2/error_logकि पहुँच /Users/jwork/Sites/अवरुद्ध हो रही थी। हालाँकि, मुझे DocumentRoot तक, के माध्यम से पहुँचने की अनुमति थी http://localhost/। इसने सुझाव दिया कि मेरे पास ~jworkउपयोगकर्ता को देखने के अधिकार नहीं हैं । लेकिन जहां तक ​​मैं बता सकता हूं ps aux | egrep '(apache|httpd)'और lsof -i :80, अपाचे jworkउपयोगकर्ता के लिए चल रहा था , इसलिए कुछ स्पष्ट रूप से मेरे उपयोगकर्ता कॉन्फ़िगरेशन के साथ नहीं लिखा गया था।

यहां दिए गए उपयोगकर्ता नाम को देखते हुए jwork, मेरी कॉन्फ़िग फ़ाइल थी:

/private/etc/apache2/users/jwork.conf

<Directory "/Users/jwork/Sites/">
    Require all granted
</Directory>

यह कॉन्फ़िगरेशन पूरी तरह से मान्य है। हालाँकि, मैंने पाया कि मेरे उपयोगकर्ता विन्यास को शामिल नहीं किया जा रहा था:

/private/etc/apache2/extra/httpd-userdir.conf

## Note how it's commented out by default.
## Just remove the comment to enable your user conf.
#Include /private/etc/apache2/users/*.conf

ध्यान दें कि यह userdir conf फ़ाइल का डिफ़ॉल्ट पथ है, लेकिन जैसा कि आप नीचे देखेंगे, यह अंदर कॉन्फ़िगर करने योग्य है httpd.conf। सुनिश्चित करें कि निम्नलिखित लाइनें सक्षम हैं:

/private/etc/apache2/httpd.conf

Include /private/etc/apache2/extra/httpd-userdir.conf

# ...

LoadModule userdir_module libexec/apache2/mod_userdir.so

1

उन लोगों के लिए जो मेरे रूप में इस त्रुटि पर अटक गए हैं और ऊपर से कुछ भी मदद नहीं मिली है: अगर त्रुटि फ़ोल्डर से समस्या फ़ोल्डर की जाँच करें। वास्तव में आपके सर्वर पर मौजूद है। Django द्वारा गलत तरीके से स्वचालित रूप से मेरा निर्माण किया गया था (स्थिर जड़ के साथ गड़बड़ किया गया था, फिर manage.py collectstatic)। पता नहीं क्यों त्रुटियों को सही ढंग से नाम नहीं दिया जा सकता है।


मेरे दिमाग का इस्तेमाल करने की याद दिलाने के लिए शुक्रिया, मेरी समस्या ठीक कर दी। +1 haha
orangecaterpillar

0

अन्य उत्तरों में उल्लिखित अनुपलब्ध Orderऔर Allowनिर्देशों के बारे में पता होना चाहिए कि एक DirectoryMatchनिर्देश की गैर-मिलान नियमित अभिव्यक्ति भी इस त्रुटि का कारण हो सकती है।

यदि अनुरोध किया गया मार्ग /home/user-foo1bar/www/myproject/फ़ोलोइंग मिलानकर्ता से मेल नहीं खाएगा

<DirectoryMatch "/home/user-[a-z]+/www/myproject/">
...
</DirectoryMatch>

इस प्रकार, यहां तक ​​कि मान्य एक्सेस कॉन्फ़िगरेशन भी इस त्रुटि का कारण हो सकता है।


0

एक अस्पष्ट (सिर्फ इससे निपटना), फिर भी संभव है, इसका कारण एक आंतरिक mod_rewrite नियम है, मुख्य कॉन्फ़िगरेशन फ़ाइल (नहीं .htaccess) में एक पथ जो सर्वर फ़ाइल सिस्टम के मूल में मौजूद है, को लिखता है। कहो कि /mediaआपकी साइट में एक निर्देशिका है, और आप इस तरह से कुछ लिखते हैं:

RewriteRule /some_image.png /media/some_other_location.png

यदि आपके पास /mediaअपने सर्वर की जड़ में एक निर्देशिका है, तो आपकी साइट निर्देशिका में एक के बजाय पुन: लिखने का प्रयास किया जाएगा (जिसके परिणामस्वरूप पहुंच अस्वीकृत), क्योंकि फ़ाइल सिस्टम रूट की जाँच पहले mod_rewrite द्वारा की जाती है, अस्तित्व के लिए पथ में पहली निर्देशिका, आपकी साइट निर्देशिका से पहले।


0

समस्या यह हो सकती है कि निर्देशन <निर्देशिका> के अंतर्गत नहीं है

https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html#requiredirectives

निर्देश को <निर्देशिका>, <फ़ाइलें>, या <स्थान> अनुभाग के साथ-साथ .htaccess फ़ाइलों को सर्वर के विशेष भागों तक पहुंच को नियंत्रित करने के लिए संदर्भित किया जा सकता है। क्लाइंट होस्टनाम या आईपी पते के आधार पर पहुंच को नियंत्रित किया जा सकता है।


0

मुझे एक और मिला जो किसी के लिए उपयोगी हो सकता है। PHP 5.6 => 7.0 से अपग्रेड करने के बाद एक ही त्रुटि संदेश मिल रहा था। हमने PHP अपलोड सेटिंग्स बदल दी थीं, और एक बार कॉपी करने के बाद बदलना भूल गए थे। भले ही मैं उस समय चित्र अपलोड नहीं कर रहा था, सिल्वरस्ट्रिप (हमारा सीएमएस) उस त्रुटि को सहेजने और फेंकने से इनकार कर रहा था। छवि अपलोड आकार को बढ़ाया और यह सीधे काम किया।


0

यदि यह मेरे आसपास के किसी भी व्यक्ति की Googling में मदद करता है, तो मेरे पास यह त्रुटि संदेश था, अपने सर्वर पर SVG फ़ाइल तक पहुँचने की कोशिश कर रहा था, जैसे https://example.com/images/file.svg । अन्य फ़ाइल प्रकार ठीक लग रहे थे, बस एसवीजी असफल हो रहे थे।

मैं /etc/httpdगोपनीय फाइलों के आसपास शिकार किया और हर जाँच कीrequire all denied प्रकार के कॉन्फ़िगरेशन की जांच की, और बस यह नहीं पता लगा सका कि इस प्रभाव का विन्यास क्या था।

मैंने LogLevel को VirtualHost config में डीबग करने के लिए बदल दिया और mod_authz_core लॉगिंग को यह निर्दिष्ट करते हुए देख सकता है कि प्रभाव में 'सभी की आवश्यकता होती है':

[Mon Jun 10 13:09:54.321022 2019] [authz_core:debug] [pid 23459:tid 140576341206784] mod_authz_core.c(817): [client 127.0.0.1:54626] AH01626: authorization result of Require all denied: denied
[Mon Jun 10 13:09:54.321038 2019] [authz_core:debug] [pid 23459:tid 140576341206784] mod_authz_core.c(817): [client 127.0.0.1:54626] AH01626: authorization result of <RequireAny>: denied
[Mon Jun 10 13:09:54.321082 2019] [authz_core:error] [pid 23459:tid 140576341206784] [client 127.0.0.1:54626] AH01630: client denied by server configuration: /home/blah/htdocs/images/file.svg

नेत्रहीन परीक्षण के माध्यम से मैंने फ़ाइल को वेब रूट के रूट पर स्थानांतरित कर दिया, और पाया कि मैं इसे https://example.com/file.svg पर एक्सेस कर सकता हूं । इसलिए यह केवल 'छवियों' फ़ोल्डर में विफल रहा। इसने मुझे इमेज फोल्डर में एक .htaccess फाइल की ओर ले गया जिसका मुझे कोई अंदाजा नहीं था।

ज़ेन कार्ट 1.5 चालू करता है जिसमें एक चित्र / .htaccess फ़ाइल होती है:

# deny *everything*
 <FilesMatch ".*">
   <IfModule mod_authz_core.c>
     Require all denied
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Allow,Deny
     Deny from all
   </IfModule>
 </FilesMatch>

 # but now allow just *certain* necessary files:
 <FilesMatch "(?i).*\.(jpe?g|gif|webp|png|swf)$" >
   <IfModule mod_authz_core.c>
     Require all granted
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Allow,Deny
     Allow from all
   </IfModule>
 </FilesMatch>

यह बहुत कष्टप्रद था और मुझे आशा है कि यह दूसरों को जाँचने के लिए याद दिला सकता है। फ़ाइल सिस्टम के हर स्तर पर मौजूद अतिरिक्त फ़ाइलों की वजह से आपको उस फ़ाइल तक पहुँचने में परेशानी हो रही है जहाँ इस तरह की टॉम फुलरी चल रही है।


0

मैंने वास्तव में इसे निर्देशिका एक्सेस को 80 प्रविष्टि में जोड़कर हल किया।

 <Directory "c:/whatever-directory-you-use/">
    AllowOverride All
    Require all granted
</Directory>

इससे पहले कि हर कोई मुझ पर सभी 'सुरक्षा' हासिल कर ले, मेरी विशिष्ट परिस्थितियों में यह सुरक्षा मुद्दा नहीं है।

यदि आप एक दूरस्थ संसाधन का उपयोग कर रहे हैं, तो मैं यह सुनिश्चित करने के बजाय कि आपका CURL अनुरोध HTTPS / TLS के माध्यम से जाता है, तो यह निर्देशिका प्रविष्टि 443 पोर्ट पर जाती है।


0

यह "बग" वास्तव में अपाचे 2.4 का नया सामान्य व्यवहार है। मेरे मामले में, किसी भी फ़ोल्डर या फ़ाइल को "नाम" के साथ शुरू करने के लिए उपयोग करने से इनकार करने के लिए मेरे पास एक बहुत ही विशिष्ट नियम था, इसलिए मुझे एक विशेष सार्वजनिक फ़ोल्डर के लिए एक अपवाद सेट करना पड़ा जिसके लिए इस तरह के अजीब नाम की आवश्यकता होती है।

रिकॉर्ड के लिए मेरा विशेष नियम है:

RewriteRule "(?!\.trusted)(^|/)\." - [F]

यह नियम [एफ] सब कुछ "से शुरू होता है।" लेकिन .trusted, रेगेक्स के जादू के लिए धन्यवाद "?" निषेध।


0

क्योंकि यह थ्रेड वह पहली चीज़ है जो उस त्रुटि के लिए पॉप अप करता है जब मैंने उल्लेख किया था कि मैं इस त्रुटि के लिए एक और संभावित कारण जोड़ना चाहूंगा: आपके पास mod_evasiveसक्रिय हो सकता है और इस त्रुटि को देखने वाला क्लाइंट बस आपके द्वारा कॉन्फ़िगर की गई सीमाओं को पार कर गया हैmod_evasive.conf

यह विशेष रूप से जांच के लायक है यदि आपको अचानक एक ग्राहक के लिए यह त्रुटि हो रही है जिसमें पहले कोई समस्या नहीं थी और कुछ भी नहीं बदला है।

(यदि mod_evasiveकारण है तो त्रुटि स्वयं दूर हो जाएगी यदि ग्राहक अस्थायी रूप से साइट तक पहुंचने की कोशिश करना बंद कर देता है; हालांकि यह संकेत हो सकता है कि आपने बहुत तंग सीमाएं कॉन्फ़िगर की हैं)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.