दिलचस्प पोस्ट
प्री-लॉलीपॉप के लिए तरंग प्रभाव कैसे बनाएं क्या कोई वास्तविक दुनिया समस्या है, या सिर्फ एक ऐतिहासिक एक पूरक? फ़्लोट्स और स्ट्रिंग रूपांतरण के साथ अजीब व्यवहार प्रकार की जाँच करें: प्रकार, GetType, या है? जावा चर और विधि नामों में अंडरस्कोर का उपयोग करना जावा: वेतन वृद्धि / घटते ऑपरेटरों का उपसर्ग / पोस्टफिक्स? \ build \ intermediates \ res \ resources-anzhi-debug-stripped.ap_ 'संपत्ति के लिए निर्दिष्ट' resourceFile 'मौजूद नहीं है मैं वैक्टर के वैक्टर के कार्टेशियन उत्पाद कैसे बना सकता हूं? jQuery गतिशील इनपुट सरणी मान्य करें एंड्रॉइड मॅनिफेस्ट में वर्जन कोड बनाम वर्जननाम झुमके-वाइक्-वाइटबल्स का क्या अर्थ है? _UIApplicationHandleEventFromQueueEvent में अनपेक्षित शून्य विंडो ओपनजीएल पर ऑफिसिन कैसे रेंडर करना है? एंट या मेवेन के बजाय ग्रेडल का उपयोग क्यों करें? PHP / regex: HTML टैग की स्ट्रिंग मान कैसे प्राप्त करें?

अगर PHP में mod_rewrite सक्षम है तो कैसे जांचें?

मैं सोच रहा था कि क्या यह जांचना संभव है कि क्या mod_rewrite PHP में अपाचे और आईआईएस पर सक्षम है।

IIS के लिए ModRewrite मौजूद है इसे here

इसलिए, मैं एक PHP स्क्रिप्ट की खोज कर रहा हूं जो कि अपाचे और आईआईएस पर mod_rewrite लिए जांच करता है

क्या कोई ऐसी स्क्रिप्ट जानता है या एक लिख सकता है?

विशेषकर माइक्रोसॉफ्ट आईआईएस के लिए

धन्यवाद!

Solutions Collecting From Web of "अगर PHP में mod_rewrite सक्षम है तो कैसे जांचें?"

यदि आप mod_php का उपयोग कर रहे हैं, तो आप apache_get_modules() उपयोग कर सकते हैं यह सभी सक्षम मॉड्यूल की एक सरणी वापस करेगा, इसलिए यह देखने के लिए कि क्या mod_rewrite सक्षम है, आप बस कर सकते हैं

 in_array('mod_rewrite', apache_get_modules()); 

दुर्भाग्य से, आप सीजीआई के साथ ऐसा करने की कोशिश कर रहे हैं, जो इसे थोड़ा और अधिक कठिन बना देता है

आप निम्न का उपयोग करके इसका परीक्षण कर सकते हैं, हालांकि

 strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false 

अगर उपरोक्त स्थिति true मूल्यांकन करती true , तो mod_write सक्षम है।

कोड के इस टुकड़े को कॉपी करें और पता लगाने के लिए इसे चलाएं।


 <?php if(!function_exists('apache_get_modules') ){ phpinfo(); exit; } $res = 'Module Unavailable'; if(in_array('mod_rewrite',apache_get_modules())) $res = 'Module Available'; ?> <html> <head> <title>A mod_rewrite availability check !</title></head> <body> <p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p> </body> </html> 

मुझे ईसाई रॉय के समाधान पसंद है :

 ### .htaccess <IfModule mod_rewrite.c> # Tell PHP that the mod_rewrite module is ENABLED. SetEnv HTTP_MOD_REWRITE On RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # The rest of your rewrite rules here </IfModule> 

उसके बाद, आप अपने PHP कोड में जांच कर सकते हैं

  array_key_exists('HTTP_MOD_REWRITE', $_SERVER); 

अगर यह आईआईएस (मुझे जांचने का कोई रास्ता नहीं है) के साथ भी काम करता है, लेकिन पता नहीं कि बाधाएं अच्छे हैं

इस कोड के साथ info.php नाम की एक फ़ाइल अपलोड करें और इसे चलाएं:

 <?php phpinfo(); 

पृष्ठ पर mod_rewrite के लिए खोजें, और देखें कि क्या आप इसे लोडेड मॉड्यूल के अंतर्गत पा सकते हैं।

phpinfo(); में आसानी से पा सकते हैं ऐसा मुश्किल मत phpinfo();

यहां छवि विवरण दर्ज करें

आशा है कि उपयोगी हो!

धन्यवाद

कमांड लाइन के माध्यम से हम centOs में हम यह कर सकते हैं

 httpd -l 
 <?php phpinfo(); ?> 

लोडेड मॉड्यूल पंक्ति में apache2handler में कॉन्फ़िगरेशन के तहत देखें

यह सरल और काम करता है

 <?php foreach( apache_get_modules() as $module ) echo "$module<br />"; ?> 

यह जाँचने की मेरी वर्तमान पद्धति है कि क्या Mod_rewrite दोनों Apache और IIS के लिए सक्षम है

 /** * -------------------------------------------------------------- * MOD REWRITE CHECK * -------------------------------------------------------------- * - By AH Abid * Define Constant for MOD REWRITE * * Check if server allows MOD REWRITE. Checks for both * Apache and IIS. * */ if( function_exists('apache_get_modules') && in_array('mod_rewrite',apache_get_modules()) ) $mod_rewrite = TRUE; elseif( isset($_SERVER['IIS_UrlRewriteModule']) ) $mod_rewrite = TRUE; else $mod_rewrite = FALSE; define('MOD_REWRITE', $mod_rewrite); 

यह मेरी स्थानीय मशीन में काम करता है और मेरे आईआईएस आधारित वेबहोस्ट में भी काम करता है। हालांकि, किसी विशेष अपाचे सर्वर पर, यह अपाचे के लिए अपाचे _get_modules () अक्षम के रूप में काम नहीं करता था, लेकिन mod_rewrite उस सर्वर में सक्षम था।

आप स्थापित एपाचे मॉड्यूल की एक सूची प्राप्त कर सकते हैं, और उस के खिलाफ की जाँच करें शायद आप इसकी जांच कर सकते हैं कि इसकी स्थापना। Dll (या linux equivalent) फ़ाइल के लिए खोजी गई है।

कोड की दो पंक्तियां:

 $isEnabled = in_array('mod_rewrite', apache_get_modules()); echo ($isEnabled) ? 'Enabled' : 'Not enabled'; 

exec() द्वारा एक और विधि exec()

 exec('/usr/bin/httpd -M | find "rewrite_module"',$output); 

यदि mod_rewrite लोड किया जाता है तो यह आउटपुट में "rewrite_module" लौटाएगा।

एक और विचार, वास्तव में एक और गंदे हैक, आधुनिक पुनर्लेखन के बारे में सर्वर एक आवश्यक नहीं है एक php समस्या: क्यों नहीं, यदि आपके पास संभावना है, तो एक परीक्षण निर्देशिका बनाने के लिए .htaccess में test.php को पुन: लिखना डालें, निर्देशिका को कॉल करें एचटीटीपी के माध्यम से और जांच लें कि क्या आप test.php में दिए गए अपेक्षित परिणाम प्राप्त करते हैं।

वास्तव में, गंदे