2010-03-04 13 views
5

मैं अपनी वेबसाइटों के लिए एक छोटा PHP ढांचा तैयार कर रहा हूं और जानना चाहता हूं कि क्या मैं अधिकांश होस्टर्स पर mod_rewrite availabe पर भरोसा कर सकता हूं।क्या मैं mod_rewrite पर भरोसा कर सकता हूं?

  • क्या इसका उपयोग करने का भी एक अच्छा विचार नहीं है? पहले से ही बहुत अच्छे अंक हैं (एक प्रविष्टि बिंदु, "सुंदर", पठनीय यूआरएल)

  • यह कहां उपलब्ध नहीं है?

  • क्या मुझे उस होस्टर पर mod_rewrite उपलब्ध नहीं होने पर ढांचे में एक विकल्प शामिल करना चाहिए?

उत्तर

5

mod_rewrite आम तौर पर उपलब्ध है। यदि यह आपके होस्ट के सर्वर पर उपलब्ध नहीं है, तो उन्हें छोड़ दें।

+0

मैं अपने क्लाइंट के होस्ट के बारे में बात कर रहा हूं। – someone

+0

यह उत्तर कैसे बदलता है? यह अभी भी आम तौर पर उपलब्ध है, और यदि आपको नहीं तो अपने ग्राहकों को एक अलग मेजबान पर स्विच करना चाहिए। – ceejayoz

+0

यदि आपको संदेह है कि किसी क्लाइंट को mod_rewrite तक पहुंच नहीं हो सकती है तो आपको उस धारणा के आधार पर अपना ढांचा बनाना चाहिए। – thetaiko

2

यदि आप सार्वजनिक रूप से उपलब्ध एक एप्लिकेशन विकसित कर रहे हैं, तो आपको यह समझना चाहिए कि mod_rewrite उपलब्ध नहीं हो सकता है और वैकल्पिक विकल्प का समर्थन नहीं कर सकता है। AcceptPathInfo एक है।

+0

आपके द्वारा ऑफ़र किए जाने वाले अधिक विकल्प +1 करते हैं, आपके उत्पाद की संभावना अधिक है। –

0

mod_rewrite बस अपाचे के लिए है, इसलिए यदि आप आईआईएस या कुछ और आप समस्याओं के लिए जा रहे हैं पर काम करने की जरूरत है, लेकिन PHP में आप भी इस का उपयोग कर सकते हैं:

private function getURI() 
{ 
    $uri = ""; 

    if (isset($_SERVER['PATH_INFO'])) 
     $uri = getValueFrom($_SERVER, 'PATH_INFO', @getenv('PATH_INFO')); 
    elseif (isset($_SERVER['ORIG_PATH_INFO'])) 
     $uri = getValueFrom($_SERVER, 'ORIG_PATH_INFO', @getenv('ORIG_PATH_INFO')); 
    else 
     $uri = ""; 

    $scriptname = basename($_SERVER['SCRIPT_FILENAME']); 
    if (strpos($uri, $scriptname) > -1) 
     $uri = substr($uri, strpos($uri, $scriptname) + strlen($scriptname), strlen($uri)); 

    return $uri; 
} 

URL बदलें एक है अच्छा अभ्यास, वास्तव में वाइड वेब पर इस्तेमाल किया और एक एसईओ खुलने और क्योंकि बेहतर है है इस है:

domain.com/aboutus

इस

को

& कार्रवाई = शो & आईडी = 1

3

mod_rewrite मॉड्यूल domain.com/index.php?app=main आम तौर पर पर सबसे अपाचे इन दिनों होस्ट करता है उपलब्ध है। हालांकि, इसकी अनुपस्थिति के आसपास काम करना मुश्किल नहीं है, और ऐसा करके आप सुनिश्चित करते हैं कि लोग एक मेजबान/आईटी कर्मचारियों के साथ फंस गए हैं, जिन्होंने इसे बंद कर दिया है, या आईआईएस चलाने वाले मेजबान/आईटी कर्मचारी आदि

आज बनाया गया अधिकांश नए ढांचे या अनुप्रयोगों में एक ही फ्रंट लोडिंग PHP फ़ाइल (जिसे बूटस्ट्रैपिंग, फ्रंटलोडिंग पैटर्न इत्यादि कहा जाता है) के माध्यम से सभी यूआरएल अनुरोधों को अवरुद्ध करने के लिए mod_rewrite का उपयोग किया जाता है। यूआरएल भाग जो डोमेन नाम नहीं है उसे किसी ऑब्जेक्ट में पार्स किया गया है, और जब भी आपको यूआरएल तक पहुंच की आवश्यकता होती है तो उस ऑब्जेक्ट का उपयोग किया जाता है।

जब mod_rewrite उपलब्ध नहीं है,

http://example.com/index.php/foo/baz/bar 

के रूप में URL के बजाय इस्तेमाल कर रहे हैं। उपरोक्त यूआरएल के लिए अनुरोध index.php फ़ाइल द्वारा संभाला जाता है। उसके बाद, आप की तरह

$_SERVER['REQUEST_URI'], $REQUEST['PATH_INFO'], etc. 
कुछ वस्तु में

सर्वर चर में से एक को पार्स (एक ही वस्तु अगर आप mod_rewrite था का उपयोग करेंगे) और उस वस्तु का उपयोग जब भी आप यूआरएल जानकारी के लिए उपयोग की जरूरत है सकते हैं।

किसी भी तरह से, आपका बाकी ढांचा/एप्लिकेशन बस वस्तु का उपयोग करता है, और इस बारे में चिंता करने की ज़रूरत नहीं है कि जानकारी कैसे प्राप्त हुई।

Additional Reading

0

यह सबसे सर्वर में उपलब्ध है - लेकिन अगर आपको संदेह है ऐसा नहीं है, आप लिंक को लाने के लिए एक गतिशील रास्ता बनाना चाहिए - आप तो एक पूर्वनिर्धारित स्थिर है कि आप सब कुछ है कि क्या है या कहते हैं पहले संशोधित हो सकता था mod_rewrite उपलब्ध नहीं है। इसके बाद आप यह निर्धारित करने के तरीके के रूप में यूआरएल को उस स्थिरांक का उपयोग करके प्राप्त कर सकते हैं कि क्या होता है।

0

मुझे लगता है कि किसी भी सभ्य अनुप्रयोग को mod_rewrite का उपयोग करना चाहिए, और अधिकांश वेब होस्ट इसे पेश कर रहे हैं। अगर वे प्रस्ताव नहीं देते हैं, तो उन्हें हटा दें।

इसके अलावा, न सिर्फ mod_rewrite उपयोग करने के लिए एक अच्छा विकल्प है लेकिन यह भी इस php_valuemax_execution_time और इतने पर जैसे अन्य php सेटिंग्स सुनिश्चित करें कि आप अपने वातावरण आपके आवेदन उद्देश्य फिट करने के लिए अनुकूलित कर रहे हैं हो रहा है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^