/ / .htaccess - linux, .htaccess, http-status-code-403 का उपयोग करके / रीडायरेक्ट 403 त्रुटि

.htaccess - linux, .htaccess, http-status-code-403 का उपयोग कर 403 त्रुटि को पुनर्निर्देशित करें

मैं .htaccess का उपयोग करके किसी भी 403 को पुनर्निर्देशित करना चाहता हूं, लेकिन यह काम नहीं करता है।

Options +FollowSymlinks

RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html

सभी मदद की सराहना की।

धन्यवाद जीन

उत्तर:

जवाब के लिए 3 № 1

एक ErrorDocument निर्देश का URL भाग चाहिएया तो एक प्रमुख स्लैश के साथ शुरू करें, जो एक पथ को इंगित करता है जो आपके डॉक्यूमेंटरूट के सापेक्ष है, या यह एक पूर्ण URL होना चाहिए (यदि आप बाहरी दस्तावेज़ का उपयोग करना चाहते हैं)।

आपको यहाँ सभी पर RewriteEngine और RewriteRule निर्देशों की आवश्यकता नहीं है।

इसलिए, यह मानकर कि आपका notfound.html आपकी साइट के मूल स्तर पर है, आपके निर्देश की तरह दिखना चाहिए:

ErrorDocument 403 /notfound.html

जवाब के लिए 3 № 2

मुझे पहले के उदाहरण के साथ एक समस्या मिली, जो थी:

ErrorDocument 403 /notfound.html

मेरे पास अपनी साइट पर छवियों को संग्रहीत करने के लिए एक निर्देशिका है, domain.com/images पर कहते हैं

मैं चाहता था कि अगर कोई इस तक पहुँचने की कोशिश करेनिर्देशिका का URL जिसे वे साइट के मुखपृष्ठ पर पुनः निर्देशित किया जाएगा। उपरोक्त के साथ मेरी समस्या यह थी, कि ब्राउज़र में URL domain.com/images रहेगा और फिर होमपेज लोड होगा, लेकिन मुखपृष्ठ स्टाइलशीट को संदर्भित करेगा कि यह उस URL से एक्सेस नहीं कर सकता है। (और यह समझ में आता है - 403 एक त्रुटि संदेश दिखाने वाला है)।

मैंने तब शोध करने की कोशिश की कि किसी अन्य URL पर 403 त्रुटि को कैसे रीडायरेक्ट किया जाए और कुछ साइटों ने कहा कि आप "302 या 301 कर सकते हैं - आप" इस बिंदु को याद नहीं कर रहे हैं: 403 एक त्रुटि है, न कि रीडायरेक्ट।

लेकिन मुझे एक रास्ता मिल गया। यह / .htaccess फ़ाइल अंदर / चित्र निर्देशिका है:

Options -Indexes
ErrorDocument 403 /images/403.php
RewriteEngine on
RewriteRule ^403.php$ /index.php [R=301]

तो मूल रूप से पहली पंक्ति निर्देशिका लिस्टिंग को रोकती है।

दूसरी पंक्ति कहती है कि "अनुमति से इनकार" के लिए(अर्थात। 403 त्रुटि, जो कि पहली पंक्ति देती है), साइट को "/images/403.php" फ़ाइल लोड करनी चाहिए। लेकिन आपको वास्तव में उस निर्देशिका में कोई 403.php फ़ाइल बनाने की आवश्यकता नहीं है, क्योंकि ...

तीसरी पंक्ति आपके पुनर्निर्देशित इंजन को चालू करती है

और चौथी पंक्ति कहती है कि यदि उपयोगकर्तापृष्ठ 403.php (यानी इस "/ छवियों" निर्देशिका में जहां यह .htaccess फ़ाइल स्थित है) को लोड करने का प्रयास किया जाता है, फिर उन्हें 301 (स्थायी) पुनर्निर्देशित, /index.php का उपयोग करके पुनर्निर्देशित किया जाना चाहिए - जो सूचकांक है रूट डायरेक्टरी (यानी होमपेज), और / / उप-परोक्ष की छवियों का सूचकांक नहीं (और वास्तव में "/ छवियों" में वैसे भी कोई सूचकांक नहीं है)।

इसलिए - 301 (स्थायी) रीडायरेक्ट (या, आप एक 302 अस्थायी रीडायरेक्ट भी आज़मा सकते हैं) का उपयोग करके किसी अन्य URL पर पुनर्निर्देशित करने के लिए 403 कैसे प्राप्त करें।


उत्तर № 3 के लिए -1

यहाँ यह करने के लिए एक सुपर आसान तरीका है:

इस लाइन का उपयोग करें

Options -Indexes
ErrorDocument 403 /goaway.html

कहा पे goaway.html निम्नलिखित भाग में प्रमुख भाग है:

<meta HTTP-EQUIV="REFRESH" content="0; url=HERE YOU PUT THE URL YOU ARE REDIRECTING TO" />

और वह यह है ... प्रत्येक 403 त्रुटि आपके पास जाएगी goaway.html रूट डायरेक्टरी और goaway.html उन्हें आपकी पसंद के URL पर पुनर्निर्देशित करेगा