OSDN Git Service

CHANGE: <%systemsettings(modrewrite)%>の処理を変更
authorsakamocchi <o-takashi@sakamocchi.jp>
Sat, 16 Jun 2012 03:09:35 +0000 (12:09 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Sat, 16 Jun 2012 03:09:35 +0000 (12:09 +0900)
これまでの実装はphpinfo(INFO_MODULES)の出力から文字列「mod_rewrite」を探すことで検出していたが、ボトルネックが大きく、ページ出力時間のボトルネックとなっていた。そこで、apache_get_modules()が定義されている場合はこちらの出力を利用することで、ボトルネックの短縮を図るよう修正した。

nucleus/libs/AdminActions.php

index 9027887..4fd043e 100644 (file)
@@ -4446,11 +4446,25 @@ class AdminActions extends BaseActions
                                }
                                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'] . ')';