mod rewrite - mod_rewrite if you use an expression all over the place, can you put it in a "variable"? -
अगर मैं अपने htaccess फ़ाइल में 50 बार निम्न का उपयोग करता हूं:
RewriteRule ^ (bla | blo) | Bli | blu | bloi | bkdo | doid | boidi | woekj | dfpo8ds) /? $ /section_index.php?sectionurl=$1 [एल]
क्या यह संभव है कि केवल bla | blo | bli | Blu | bloi | bkdo | doid | boidi | woekj | dfpo8ds एक चर में इसे हर लाइन में फिर से उपयोग करने के बजाय? यदि हां, तो मैं ऐसा कैसे करूँ?
आप एक वातावरण चर सेट कर सकते हैं:
< पूर्व> पुनर्लेखन ^ (bla | blo | bli | blu | bloi | bkdo | doid | boidi | woekj | dfpo8ds) /? $ /section_index.php?sectionurl=$1 [एल, ई = फ़ूबर: $ 1] यह मान अब % {ENV: FOOBAR} ।
संपादित करें से सुलभ है एक अन्य तरीका चरणों में अनुरोध को संसाधित करने के लिए और नियमों को श्रृंखलाबद्ध करने के लिए:
# पहला मार्ग खंड रीव्रेट नियम ^ (bla | blo | bli | blu | bloi | bkdo | doid | boidi | woekj | dfpo8ds) / ([^ /]। *)? $ $ 2? Sectionurl = $ 1 [क्यूएसए, सी] # दूसरे मार्ग सेगमेंट रेवरइट्यूल्यू ^ (ब्लॉग | एफू) /? ([^ /]। *) $ $ 2? Arg1 = $ 1 [ क्यूएसए, सी] # तीसरे मार्ग सेगमेंट रेवरइट्यूल्यू ^ (बार | बज़) /? ([^ /]। *)? $ $ 2? आरजीजी = $ 1 [क्यूएसए, सी] # अंतिम नियम रीइरेट नियम ^ $ section_index.php [एल, क्यूएसए ]
लेकिन जैसा कि आप PHP का उपयोग करते हैं, उदाहरण के लिए: आप अनुरोध पथ को पार्स करने के लिए PHP का उपयोग भी कर सकते हैं:
$ _ server ['REQUEST_URI_PATH'] = Preg_replace ('/\?.**', '', $ _SERVER ['REQUEST_URI' ]); $ सेगमेंट = विस्फोट ('/', ट्रिम ($ _ सर्वर ['REQUEST_URI_PATH'], '/')); $ ArgNames = array ('sectionurl', 'arg1', 'arg2', 'arg3'); विदेशी मुद्रा ($ खंड = $ i = & gt; $ खंड के रूप में) {if (isset ($ argNames [$ i])) {$ _GET [$ arg नाम [$ i]] = $ सेगमेंट; }} Var_dump ($ _ GET);
अब आपको केवल इस नियम का उपयोग करके उस PHP फ़ाइल के लिए हर अनुरोध भेजने की आवश्यकता है:
# मौजूदा फाइलों के लिए अनुरोध को छोड़ दें RewriteCond% {REQUEST_FILENAME}! -f पुनर्लेखन नियम ^ index.php [एल]
Comments
Post a Comment