regex - wildcard .htaccess and reject some address on subdomain -
मुझे चाहिए कि सभी फाइल या निर्देशिका up.example.com
उपडोमेन अस्वीकार कर दी गई है और 404 त्रुटि दिखाती है ।
इसके अलावा मुझे index.php
पर एक और अनुरोध बिंदु चाहिए।
मैं यह कोड लिखता हूं:
RewriteEngine रीवाइट कंड पर% {HTTP_HOST} ^ अप \ (। +) $ [एनसी] रिवरइटकॉन्ड% {REQUEST_FILENAME} -f [OR] रीव्रैटकॉन्ड% {REQUEST_FILENAME} -डी रिक्राइट नियम ^ (। *) $ - [आर = 404, एल, एनएस] रीराइटकॉन्ड% {REQUEST_FILENAME}! -f पुनर्लेखनकंड% {REQUEST_FILENAME}! -डी रीराइटर्यूल। Index.php [एल, क्यूएसए]
जब मैं http://up.example.com/test.jpg
test.jpg
फ़ाइल रूट सर्वर पर मौजूद है, तो मुझे यह त्रुटि दिखाएं: नहीं मिला अनुरोधित URL /test.jpg इस सर्वर पर नहीं मिला था। अप 80. अपेड सर्वर पर पोर्ट 80
यह ठीक है!
लेकिन जब test.jpg
अस्तित्व में नहीं है, तो मुझे यह त्रुटि दें:
नहीं मिला अनुरोधित URL /index.php इस सर्वर पर नहीं मिला था। Apache Server up.example.com पोर्ट 80
इसके बजाय खोलें index.php
( index.php
root पर मौजूद है)
क्यों? और मैं इसे कैसे ठीक कर सकता हूं?
असल में समस्या यह है कि आप अनुक्रमणिका को सब कुछ लिखते हैं Php
और यह अनुरोध में एक मान्य फ़ाइल बन जाती है जब mod_rewrite
अगली बार चलता है तो पहला नियम इसे 404 में भेजता है।
इस त्रुटि को दूर करने के लिए आपके नियम इस तरह हैं:
RewriteEngine On # if यह इंडेक्स.एफ़पीपी # के अलावा वैध फाइल या निर्देशिका है, फिर ब्राउजर रीवाइटकॉन्ड% {HTTP_HOST} ^ अप \ [एनसी] रीवाइटकंड% {THE_REQUEST} \ s / + अनुक्रमणिका \ .php [? \ S] [एनसी] रीव्रेटआर्यूल ^ इंडेक्स \ .php $ - [आर = 404, एल, नेकां] रीव्रैटकॉन्ड% {HTTP_HOST} ^ अप \ [एनसी] रिवायइटकॉन्ड% {REQUEST_FILENAME} -f [OR] रीवर्टकंड% {REQUEST_FILENAME} -डी रिव्राईट नियम! ^ Index \ .php $ - [R = 404, L, NC] # सभी इंडेक्स / निर्देशिका को index.php पर भेजें RewriteCond% {REQUEST_FILENAME}! -f पुनर्लेखन कन्वर्ट% {REQUEST_FILENAME}! -डी पुनर्लेखन नियम Index.php [एल]
Comments
Post a Comment