как из php проверить наличие Mod_rewrite?

Тема в разделе "PHP Pro", создана пользователем sashalg, 23 сен 2009.

Статус темы:
Закрыта.
  1. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Вот... Столкнулся с проблемой... как средствами PHP определить наличие модуля Mod_rewrite в Apache.
    Если ктойто в курсе... подскажите плиз.
    Уже надоело просто мучать этим вопросом всезнающих Google и Yandex... они не знают... :nezn:
     
  2. omfg

    omfg

    Регистр.:
    4 авг 2009
    Сообщения:
    159
    Симпатии:
    46
    Как то так:
    PHP:
    <?php
    if (function_exists('apache_get_modules')) {
        foreach( 
    apache_get_modules() as $v ) {
            if (
    $v == 'mod_rewrite')
            
    $rewrite 1;
        }
    }
    ?>
     
  3. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Как вариант можно сделать тестовое правило для реврайта и стукнуться по этому пути.
     
  4. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Хм... а это идея... хотя... вобщем надо попробывать...
    А вот apache_get_modules у провайдера не оказалось...
     
  5. omfg

    omfg

    Регистр.:
    4 авг 2009
    Сообщения:
    159
    Симпатии:
    46
    можно еще брать phpinfo() в переменную и смотреть есть ли там строка mod_rewrite
     
  6. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Вот... покумекал дома и сделал такое:
    Может кому и пригодится.

    PHP:
      function isModRewrite()
      {
          if(
    function_exists('apache_get_modules'))
          {
              
    $_tmp apache_get_modules();
              if(
    in_array('mod_rewrite',$_tmp))
              {
                  return 
    true;
              }
              else
              {
                  return 
    false;
              }
          }
          else
          {
              
    ob_start();
              
    phpinfo();
              
    $_tmp ob_get_contents();
              
    ob_end_clean();
              if(
    preg_match('/\s*?(mod_rewrite)\s*?/is',$_tmp))
              {
                  return 
    true;
              }
              else
              {
                  return 
    false;
              }
          }
      }
     
Статус темы:
Закрыта.