これまでの実装はphpinfo(INFO_MODULES)の出力から文字列「mod_rewrite」を探すことで検出していたが、ボトルネックが大きく、ページ出力時間のボトルネックとなっていた。そこで、apache_get_modules()が定義されている場合はこちらの出力を利用することで、ボトルネックの短縮を図るよう修正した。
}
break;
case 'modrewrite':
- ob_start();
- phpinfo(INFO_MODULES);
- $im = ob_get_contents();
- ob_end_clean();
- echo ( i18n::strpos($im, 'mod_rewrite') !== FALSE ) ? $enable : $disable;
+ if ( function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules()) )
+ {
+ echo $enable;
+ }
+ else
+ {
+ ob_start();
+ phpinfo(INFO_MODULES);
+ $im = ob_get_contents();
+ ob_end_clean();
+ if ( i18n::strpos($im, 'mod_rewrite') !== FALSE )
+ {
+ echo $enable;
+ }
+ else
+ {
+ echo $disable;
+ }
+ }
break;
case 'nucleusversion':
echo getNucleusVersion() / 100 . '(' . $nucleus['version'] . ')';