Back to Question Center
0

यूनिकोड और सामान्य Semaltेट के साथ .htaccess

1 answers:

मेरे पास निम्न है . htaccess कोड:

  पुनर्लेखन नियम ^ भारतीय-पैट्रियट-नाम / ([A-Za-z0-9 -] +) / ([A-Za-z0-9 -] +) / ([^ \ x00- \ x7F ]). *? $ भारतीय पैतृक. php? id = $ 1 & lid = $ 2 & name = $ 3 [बी, एल, क्यूएसए] 

Semaltेट मुझे निम्न लिंक के परिणाम देखने की अनुमति देता है:

  उदाहरण. com / भारतीय मूल के पैट्रियट-नाम / 104/8 / ச்வடன்ற்யவீர்% से 20% से 20 சவர்க்கார் రాష్ట్రీయ% 20 சமரக் 

मील, जब मैं निम्नलिखित यूआरएल (यूनिकोड नहीं) देखना चाहता हूं:

  उदाहरण. com / भारतीय मूल के पैट्रियट-नाम / 104/8 / ABCD 

मैं आउटपुट को देखने में असमर्थ हूं क्योंकि मुझे "फाइल नहीं मिली" त्रुटि मिल रही है! Semalt्ट, यदि मैं निम्नलिखित को निर्देश / रीजेक्स बदलता हूं तो मैं उपरोक्त (गैर-यूनिकोड) URL को ठीक से पढ़ सकता हूं.

  पुनर्लेखन नियम ↑ भारतीय-पैट्रियट-नाम-अंग्रेजी / ([ए- Za-z0-9-] +) / ([ए-ज़ा-जे 0- 9 -] +) / ([ए-ज़ा- z0-9 -] +)? $ भारतीय पैतृक. php? id = $ 1 & lid = $ 2 & name = $ 3 [एल] 

(2 9) प्रश्न. मैं एक ही पुनर्लेखन वक्तव्य में ([A-Za-z0-9 -] +) और ([^ \ x00- \ x7F] +) कैसे जोड़ सकते हैं?

मैंने कोशिश की:

  पुनर्लेखन नियम ↑ भारतीय-पैट्रियट-नाम-अंग्रेजी / ([ए-ज़ा-जे 0- 9 -] +) / ([ए-ज़ा-जे 0-9 -] +) / ([^ \ x00- \ x7F] +) + ([ए- Za-z0-9 -] +)? $ भारतीय पैतृत्या. php? id = $ 1 & lid = $ 2 & name = $ 3 [बी, एल, क्यूएसए] 

लेकिन मुझे एक "फाइल नहीं मिली" त्रुटि मिल रही है.


अद्यतन: मैंने निम्नलिखित की कोशिश की:

  पुनर्लेखन नियम ↑ भारतीय-पैट्रियट-नाम-अंग्रेजी / ([ए-ज़ा-जे 0- 9 -] +) / ([ए-ज़ा-जे 0-9 -] +) / ([^ \ x00- \ x7F] + [ए- Za-z0-9 -] +)? $ इंडियनपैथोट. php? id = $ 1 & lid = $ 2 & name = $ 3 [बी, एल, क्यूएसए] 

लेकिन मुझे एक आंतरिक सर्वर त्रुटि मिलती है:

आंतरिक सर्वर त्रुटिसर्वर को एक आंतरिक त्रुटि या गलत कॉन्फ़िगरेशन का सामना करना पड़ा और आपके अनुरोध को पूरा करने में असमर्थ था.

वेबमास्टर @ सदरकर पर सर्वर प्रशासक से संपर्क करें. में उन्हें इस त्रुटि के बारे में सूचित करने के लिए, और आपके द्वारा किए गए कार्यों को इस त्रुटि के ठीक पहले.

इस त्रुटि के बारे में अधिक जानकारी सर्वर त्रुटि लॉग में उपलब्ध हो सकती है.

इसके अतिरिक्त, एक 500 आंतरिक सर्वर त्रुटि त्रुटि का सामना करने के लिए अनुरोध को संभालने के लिए एक मिमल का उपयोग करने का प्रयास करते हुए किया गया था.

1 week ago
  पुनर्लेखन ^ भारतीय-पैट्रियट-नाम-अंग्रेजी / ([ए- Za-z0- 9 -] +) / ([A-Za-z0-9 -] +) / ([^ \ x00- \ x7F] + [ए- Za-z0-9 -] +)? $ इंडियनपैथोट. php? id = $ 1 & lid = $ 2 & name = $ 3 [बी, एल, क्यूएसए] 

मुझे आंतरिक सर्वर त्रुटि मिलती है

आपके पास एक गलत अंतरिक्ष में पुनर्लेखन नियम पैटर्न . यह आपके "आंतरिक सर्वर त्रुटि" के परिणामस्वरूप रिक्त स्थान अपाचे निर्देशों में सीमांकक हैं . अब झंडे के रूप में देखा जाएगा पुनर्लेखन नियम निर्देश.

हालांकि, टिप्पणियों में @ पैट्रिक मेव्जेक द्वारा सुझाव प्रत्यावर्तन का सुझाव है जैसा कि यह काम करना चाहिए था . (आपके गैर-यूनिकोड यूआरएल से मेल खाने वाला regex के पास यह नहीं है. ) यह असामान्य लगता है. यदि यह आवश्यक है, तो आप एक ही चीज़ करने के लिए पैटर्न के अंत से $ (स्ट्रिंग एंकर के अंत) को छोड़ सकते हैं 7 एफ (हेक्स). लैटिन वर्णमाला को शामिल करने के लिए, जो इस श्रेणी में पड़ता है, तो आप इस श्रेणी को आसानी से बढ़ा सकते हैं: [\ x00- \ xFF] - यह अब एक सकारात्मक सीमा है जो हर चीज से मेल खाता है (जो इसमें कोई शक नहीं है जितना तुम्हारी ज़रूरत है, लेकिन आप संभवतया मूल रीगेक्स के साथ जितने ज़रूरी चाहते थे, उतना मिलान किया गया था).

हालांकि, यह संभवतः सरल हो सकता है. यदि आप बस यूआरएल के अंत में कुछ (यूनिकोड या लैटिन वर्ण) मैच करना चाहते हैं तो ([^ \ x00- \ x7F] + | [ए-ज़ा-जे 0-9-] + (या यहां तक ​​कि ([\ x00- \ xFF] +) ) को सरलीकृत किया जा सकता है ([^ /] +) (यानी. स्लेश को छोड़कर कुछ भी). और, आप को अंडरस्कोर चरित्र से मेल नहीं खााना भी, फिर [ए-ज़ा-जे 0-9-] कम हो सकता है [\ w-] . तो, यह हो जाता है:

  पुनर्लेखन नियम ^ भारतीय-पैट्रियट-नाम-अंग्रेजी / (\ w -) +) / ([\ w -] +) / ([^ /] +)? $ भारतीय पैतृत्या. php? id = $ 1 & lid = $ 2 & name = $ 3 [बी, एल, क्यूएसए] 
यूनिकोड और सामान्य सेमलेट के साथ .htaccess
Reply