Back to Question Center
0

Semaltेट: मैं एक निर्देशिका में सभी फाइलों को कैसे रीडायरेक्ट कर सकता हूं जो किसी विशिष्ट फ़ाइल नाम संरचना के अनुरूप नहीं है?

1 answers:

मेरे पास एक वेबसाइट है जहां पिछले डेवलपर ने कई वेबपेजों को अपडेट किया था. मुद्दा यह है कि डेवलपर ने प्रत्येक नए वेबपेज को नए फाइलनामों के साथ बनाया था, और पुरानी फाइलनामों को हटा दिया था. मैंने साथ काम किया है. htaccess अब कुछ महीनों के लिए पुनर्निर्देश, और उपयोग के बारे में कुछ समझ है, फिर भी, मैं इस कार्य के साथ stumped हूँ - ditrevit vitamina d.

पुरानी पन्नों को ऐसा नाम दिया गया था:

     www. डोमेन. टीएलडी / subdir / फ़ाइल. एचटीएमएल    

नए पृष्ठों का नाम दिया गया है:

     www. डोमेन. टीएलडी / subdir / फ़ाइल-new-नाम. एचटीएमएल    

सभी नई फाइलों का पहला शब्द पुरानी फाइल का सही नाम है, और सभी नई फाइलों में अंतिम 2 शब्द हैं.

     www. डोमेन. टीएलडी / subdir / file1-new-नाम. एचटीएमएल
www. डोमेन. टीएलडी / subdir / करें 2-new-नाम. एचटीएमएल
www. डोमेन. टीएलडी / subdir / file3-new-नाम. एचटीएमएल
ect.     

हमें यूआरएल तक पहुंचने में भी सक्षम होना चाहिए:

     www. डोमेन. टीएलडी / subdir /    

नई फ़ाइलों को Google द्वारा अनुक्रमित किया गया है (पुराने यूआरएल 404 के कारण होते हैं, और नए को पुनर्निर्देशित करने की ज़रूरत होती है ताकि गूगल अनुकूल हो), और ग्राहक नए फ़ाइल नामों को रखना चाहते हैं क्योंकि वे अधिक वर्णनात्मक हैं. मैंने सफलता के बिना कई अलग-अलग तरीकों से इसे पुनर्निर्देशित करने का प्रयास किया है, लेकिन मैं उसे दिखाऊंगा कि मुझे सबसे अधिक स्टंप

     पुनर्लेखन बज़ /
पुनर्लेखन% {THE_REQUEST}! ^ उपडीर /. *\-नया नाम\. एचटीएमएल
पुनर्लेखन% {THE_REQUEST}! ^ उपडीर / $
रीव्रेटरेवल ^ सबडीर / (. *) \. html $ http: // www. डोमेन. टीएलडी / subdir / $ 1 \ -नया \ -name \. html [आर = 301, एनसी]    

जब विज़िट किया गया www. डोमेन. टीएलडी / subdir / file1. ब्राउज़र में html , इस कारण एक यूआरएल के साथ 403 निषिद्ध त्रुटि का कारण बनता है:

     www. डोमेन. टीएलडी / subdir / file1-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम-new-नाम- नए नाम-new-नाम. एचटीएमएल    

मुझे यकीन है कि शायद यह कुछ आसान है कि मैं अनदेखी कर रहा हूं, क्या कोई मुझे सही रीडायरेक्ट प्राप्त करने में सहायता कर सकता है? बहुत पहले से धन्यवाद!

संपादित करें

मेरे पास एक अलग दस्तावेज़ पर सहेजे गए सभी पुरानी फाइलनाम भी मिले हैं, यदि मुझे उन्हें निम्न उदाहरण की तरह स्थापित करना चाहिए:

     (फ़ाइल (1 | 2 | 3 | 4 | 5) | पेज (1 | 2 | 3 | 4 | 5) | एक (एल (लो | कम) |    
February 12, 2018

आपको अपने रीराइट कंट लाइन से कैरेट निकालने की जरूरत है:

  रेव्रेटबेस /
पुनर्लेखन% {THE_REQUEST}! सबडीर /. *\-नया नाम\. एचटीएमएल
रीव्रेटरेवल ^ सबडीर / (. *) \. html $ http: // www. डोमेन. टीएलडी / subdir / $ 1 \ -नया \ -name \. html [आर = 301, एनसी] 

फिर से लिखना की स्थिति तब लागू होगी और आप अनंत रिचर्ड लूप से बचेंगे. यह आवश्यक है क्योंकि आपकी पुरानी पुनर्लेखन स्थिति कभी प्रभावी नहीं होगी.

आपका मूल पुनर्लेखन% {THE_REQUEST}! ^ Subdir /. *\-नया नाम\. html नियम का कहना है "यदि अनुरोध स्ट्रिंग के साथ शुरू नहीं होता है" सबडीर " .

एक वैकल्पिक उप-डायरेक्टरी नाम के लिए अग्रणी स्लैश के साथ% {REQUEST_URI} का उपयोग करना होगा:

  रीव्रेटइजिन ऑन
रीव्रेटबेस /
पुनर्लेखन% {REQUEST_URI}! ^ / सबडीर /. *\-नया नाम\. एचटीएमएल
पुनर्लेखन% {REQUEST_URI}! ^ / सबडीर / $
रीव्रेटरेवल ^ सबडीर / (. html $ http: // todoodlist. html [एनसी, आर = 301]