¿Cómo verificar si mod_rewrite está habilitado en php?



Answers

Copie este fragmento de código y ejecútelo para descubrirlo.

<?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>
Question

Me preguntaba si es posible verificar si mod_rewrite está habilitado en Apache AND IIS en PHP .

ModRewrite para IIS existe. Verifíquelo here .

Por lo tanto, estoy buscando un script PHP que busque mod_rewrite en Apache e IIS.

¿Alguien conoce ese guión o puede escribir uno?

Especialmente para Microsoft IIS .

¡Gracias!




Suba un archivo llamado info.php con este código y ejecútelo:

<?php 
phpinfo();

Busque mod_rewrite en la página y vea si puede encontrarlo en Loaded Modules.




Dos líneas de código:

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



Otra idea, de hecho más un truco sucio, con respecto a la reescritura mod es el servidor dependend no es necesario un problema php: ¿Por qué no, si tiene la posibilidad, cree un directorio de prueba ponga un .htaccess en él reescribiendo a test.php, llame al directorio a través de http y compruebe si obtiene el resultado esperado que puso en test.php.

De hecho, sucio.




Este es mi método actual para verificar si Mod_rewrite está habilitado tanto para Apache como para IIS.

/**
 * --------------------------------------------------------------
 *  MOD REWRITE CHECK
 * --------------------------------------------------------------
 *                                        - By A H 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);

Funciona en mi máquina local y también funcionó en mi servidor web basado en IIS. Sin embargo, en un servidor apache en particular, no funcionó para Apache ya que apache_get_modules () estaba deshabilitado pero el mod_rewrite estaba habilitado en ese servidor.




a través de línea de comandos que en centOs podemos hacer esto

httpd -l





Links