सभी उप-निर्देशिकाओं को पुनर्निर्देशित करें लेकिन माता-पिता नहीं

मैं उपनिर्देशिका के बाद सभी फ़ोल्डरों को पुनर्निर्देशित करना चाहता हूं:

example.com/sub/sub2/some-place
example.com/sub/sub3/some-place
example.com/sub/subY/some-place

एक सबडोमेन के लिए:

sub.example.com/sub2/some-place
sub.example.com/sub3/some-place
sub.example.com/subY/some-place

यह वह नियम है जिसका मैं उपयोग कर रहा हूं और यह काम करता है:

RewriteRule ^sub/(.*)$ http://sub.example.com/$1 [R=302,L]

हालांकि, मैं example.com/sub/ निर्देशिका को रीडायरेक्ट नहीं करना चाहता हूं।

उपयोगकर्ता विज़िट example.com/sub/ को/sub / उपयोगकर्ता विज़िट example.com/sub/ANYTHINGELSE को sub.example.com/ANYTHGINELSE पर रीडायरेक्ट किया जाना चाहिए

अग्रिम में धन्यवाद।

संपादित करें: प्रश्न: मैं नियम में बहिष्करण कैसे जोड़ूं? उदाहरण: मैं चाहता हूँ

example.com/sub/sub2/some-place 
example.com/sub/sub3/some-place 
example.com/sub/subY/some-place 

ऊपर के रूप में पुनर्निर्देशित करने के लिए

example.com/sub/thispageshouldnotredirect 

रीडायरेक्ट नहीं करने के लिए। मैंने इस नियम को जोड़ने की कोशिश की:

RewriteCond %{REQUEST_URI} !^/thispageshouldnotredirect 

संपादित करें # 2: यह वर्तमान में मेरे लिए काम कर रहा है:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/sub/thispageshouldnotredirect/?$
RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L]
1
जोड़ा संपादित
विचारों: 1

1 उत्तर

।/ के स्थान पर ।/ के स्थान पर ।/ का उपयोग करके सुनिश्चित करें कि /sub/ के बाद 1 और वर्ण हैं:

RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L]
2
जोड़ा
यह बहुत सराहना कर रहा है इसकी सराहना करते हैं। प्रश्न: मैं नियम में बहिष्करण कैसे जोड़ूं? उदाहरण: मैं example.com/sub/sub2/some-place example.com/sub/sub3/some-place example.com/sub/subY/some-place को ऊपर के रूप में रीडायरेक्ट करने के लिए चाहता हूं लेकिन `example.com/sub/thispageshouldnotredirect रीडायरेक्ट नहीं करने के लिए। मैंने इस नियम को जोड़ने का प्रयास किया: रिवाइटकंड% {REQUEST_URI}! ^/Thispageshouldnotredirect
जोड़ा लेखक whoback, स्रोत
इस पर कोई इनपुट? धन्यवाद!
जोड़ा लेखक whoback, स्रोत
संपादित प्रश्न और मेरे दूसरे प्रश्न का उत्तर दिया। क्या आप पुष्टि कर सकते हैं कि यह सही है/क्या कोई बेहतर कार्यान्वयन है? धन्यवाद!
जोड़ा लेखक whoback, स्रोत
इसकी प्रशंसा करना। क्या आपके पास संसाधनों के कोई लिंक हैं जहां मैं इस तरह की चीजों के बारे में और जान सकता हूं? आपके सहयोग के लिए पुन: धन्यवाद!
जोड़ा लेखक whoback, स्रोत
ओह, मैंने आपकी पिछली टिप्पणी को याद किया। उस लंबी टिप्पणी को पढ़ने में मुश्किल है। क्या आप इस सवाल को स्पष्ट रूप से संपादित कर सकते हैं और इस नई आवश्यकता को स्पष्ट रूप से समझा सकते हैं ताकि मैं तदनुसार अपना उत्तर संपादित कर सकूं।
जोड़ा लेखक anubhava, स्रोत
मामूली परिवर्तन <�कोड> रिवाइटकंड% {REQUEST_URI}! ^/Sub/thispageshouldnotredirect (/ | $) सही स्थिति है जो /sub/thispageshouldnotredirect से शुरू होने वाली सभी चीज़ों को अनदेखा कर देगी अनुप्रेषित।
जोड़ा लेखक anubhava, स्रोत
आपका स्वागत है। मैं केवल httpd.apache.org/docs/current/rewrite/intro.html का उपयोग करता हूं संदर्भ के लिए । लेकिन एसओ पर मैंने कई अन्य सवालों से सीखा।
जोड़ा लेखक anubhava, स्रोत