mod_rewrite habilitar a2enmod php .htaccess mod-rewrite url-rewriting lightspeed

php - habilitar - a2enmod rewrite



¿Cómo verificar si mod_rewrite está habilitado en el servidor? (15)

  1. Para verificar si el módulo mod_rewrite está habilitado, cree un nuevo archivo php en su carpeta raíz de su servidor WAMP. Introduzca la siguiente

    phpinfo();

  2. Acceda a su archivo creado desde su navegador.

  3. Ctrl F para abrir una búsqueda. Busque ''mod_rewrite''. Si está habilitado lo ves como ''Módulos cargados''

  4. De lo contrario, abra httpd.conf (archivo de configuración de Apache) y busque la siguiente línea.

    #LoadModule rewrite_module modules/mod_rewrite.so

  5. Retire el signo de libra (''#'') al inicio y guarde este archivo.

  6. Reinicia tu servidor apache.

  7. Acceda al mismo archivo php en su navegador.

  8. Busque ''mod_rewrite'' nuevamente. Deberías poder encontrarlo ahora.

Actualmente estoy usando el hosting con el servidor de Lightspeed . Hosting dice que mod_rewrite está habilitado pero no puedo hacer que mi script funcione allí. Cada vez que intento acceder a la URL, devuelve 404 - página no encontrada .

Puse los mismos códigos en otro servidor que se ejecuta con Apache. Está trabajando allí. Así que supongo que es el problema de .htaccess y mod_rewrite .

Pero el soporte de Hosting aún insiste conmigo en que su mod_rewrite está activado, por lo que me gustaría saber cómo puedo verificar si está realmente habilitado o no.

Intenté consultar con phpinfo() , pero no tuve suerte, no puedo encontrar mod_rewrite allí, ¿es porque están usando la lightspeed ?

¿Hay alguna manera de verificar? Por favor, ayúdame. Gracias.

FYI: mi código .htaccess es

Options -Indexes <IfModule mod_rewrite.c> DirectoryIndex index.php RewriteEngine on RewriteCond $1 !^(index/.php|assets|robots/.txt|favicon/.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] </IfModule>

Intenté así también

DirectoryIndex index.php RewriteEngine on RewriteCond $1 !^(index/.php|assets|robots/.txt|favicon/.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

Pero el mismo resultado.


Estaba teniendo el problema exacto, lo resolví haciendo clic en la estructura personalizada, luego /index.php/%postname%/ y funciona

Espero que esto le ahorre a alguien el estrés que tuve al descubrir que diablos estaba mal con eso.


Esto funciona en CentOS:

$ sudo httpd -M |grep rewrite_module

Debería salir rewrite_module (shared)


La función de PHP apache_get_modules() una lista de módulos habilitados. Para verificar si mod_rewrite está habilitado, puede ejecutar la siguiente secuencia de comandos en su servidor:

<?php print_r(apache_get_modules()); ?>

Si el ejemplo anterior falla, puede verificar mod-rewrite usando su archivo .htaccess .

Cree un archivo htaccess en la raíz del documento y agregue la siguiente rewriteRule:

RewriteEngine on RewriteRule ^helloWorld/?$ /index.php [NC,L]

Ahora visite http://example.com/HelloWorld . Se le enviará internamente a la página /index.php de su sitio. De lo contrario, si mod-rewrite está deshabilitado, obtendrá un error del servidor 500 Internel.

Espero que esto ayude.



Si

in_array(''mod_rewrite'', apache_get_modules())

devuelve true luego se habilita mod-rewrite.


Si apache_get_modules () no se reconoce o no hay información sobre este módulo en phpinfo (); Intente probar la reescritura mod agregando esas líneas en su archivo .htaccess:

RewriteEngine On RewriteRule ^.*$ mod_rewrite.php

Y mod_rewrite.php:

<?php echo "Mod_rewrite is activated!"; ?>


Si está en el sistema Linux, puede verificar todos los módulos habilitados para apache2 (en mi caso) en la siguiente carpeta: / etc / apache2 / mods-available

cd /etc/apache2/mods-available

escribir: ll -a
si desea verificar los módulos disponibles para la carpeta php (en este caso php 7) /etc/php/7.0/mods-available

cd /etc/php/7.0/mods-available

escribir: ll -a


Si está utilizando un archivo de configuración de hosts virtuales, asegúrese de que el host virtual en cuestión tenga la directiva AllowOverride All algún lugar como este:

<VirtualHost *:80> ... <Directory "directory/of/your/.htaccess"> AllowOverride All </Directory> </VirtualHost>


Si este código está en su archivo .htaccess (sin el cheque para mod_rewrite.c)

DirectoryIndex index.php RewriteEngine on RewriteCond $1 !^(index/.php|assets|robots/.txt|favicon/.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

y puede visitar cualquier página de su sitio con un error de servidor de 500, creo que es seguro decir que la modificación de mod está activada.


Solo necesita verificar si el archivo está allí, escribiendo

cat /etc/apache2/mods-available/rewrite.load

La línea de resultado no se puede comentar comenzando con #


consola:

<VirtualHost *:80> ... <Directory ...> AllowOverride All </Directory> </VirtualHost> sudo a2enmod rewrite sudo service apache2 restart


desde la línea de comando, escribe

sudo a2enmod reescribir

si el modo de reescritura ya está habilitado, se lo dirá!


puedes hacerlo en la terminal, ya sea:

apachectl -M apache2ctl -M

tomado de 2daygeek


solo crea una nueva página y agrega este código

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

y ejecuta esta página, luego encontrarás que will poder saber que el módulo está Disponible o no; si no, entonces puedes preguntar a tu hosting o si quieres habilitarlo en la máquina local, entonces revisa este tutorial paso a paso de youtube relacionado con habilitar el módulo de reescritura en wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s Icono del servidor Wamp -> Apache -> Apache Modules y comprueba la opción del módulo de reescritura