दिलचस्प पोस्ट
जावास्क्रिप्ट में फास्ट फ़ैक्टोरियल फंक्शन ईएफ कोड में परिकलित कॉलम पहले मेरी जावास्क्रिप्ट और सीएसएस फ़ाइलों के आकार को कम करने का सबसे अच्छा तरीका क्या है? वापसी की कुंजी दबाकर कुंजीपटल को कैसे छुपाया जा सकता है? दो अलग-अलग डेटा के साथ दो अलग-अलग जगहों को वापस करने की आवश्यकता है जहां खंड सीएसएस में एक सर्कल सेक्टर कैसे खींचना है? जावास्क्रिप्ट में कस्टम ऑब्जेक्ट के लिए आप एक विधि कैसे बना सकते हैं? ओरेकल में आंतरिक शामिल होने के साथ अपडेट कथन पता कैसे करें कि एक चर एक सरणी है लिनक्स खोल स्क्रिप्ट नाम के लिए अग्रणी शून्य जोड़ने के लिए मैं कई जुड़ने वाले शब्दों को कैसे विभाजित कर सकता हूं? स्क्रिप्ट से स्थापित पैकेज आयात करना "AttributeError: मॉड्यूल में कोई विशेषता नहीं है" या "ImportError: नाम आयात नहीं किया जा सकता" सी #: एक फाइल की शुरुआत करने के लिए तैयार Regex टैग्स के बीच सभी पाठ का चयन करें मैं एक निचले-दाएँ डिवा के आसपास पाठ कैसे लपेट सकता हूँ?

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

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

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

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

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

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

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "अगर 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 में दिए गए अपेक्षित परिणाम प्राप्त करते हैं।

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