Actualmente estoy usando el alojamiento con servidor de velocidad de la luz . El alojamiento dice que mod_rewrite
está habilitado pero no puedo hacer que mi script funcione allí. Siempre 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á funcionando allí. Así que supongo que es el problema .htaccess
y mod_rewrite
.
Pero el soporte de Hosting todavía me insiste en que su mod_rewrite está activado, así que me gustaría saber cómo puedo verificar si está realmente habilitado o no.
Traté de consultar phpinfo()
, pero no tuve suerte, no puedo encontrar mod_rewrite
allí, ¿es porque están usando lightspeed
?
¿Hay alguna forma de comprobarlo? Por favor, ayúdame. Gracias.
FYI: mi .htaccess
código 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.
fuente
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();
Acceda a su archivo creado desde su navegador.
CtrlFpara abrir una búsqueda. Busque 'mod_rewrite'. Si está habilitado, lo verá como 'Módulos cargados'
Si no es así, abra httpd.conf (archivo de configuración de Apache) y busque la siguiente línea.
#LoadModule rewrite_module modules/mod_rewrite.so
Elimine el signo de almohadilla ('#') al principio y guarde este archivo.
Reinicie su servidor apache.
Acceda al mismo archivo php en su navegador.
Busque 'mod_rewrite' nuevamente. Debería poder encontrarlo ahora.
fuente
phpinfo()
el campo "API del servidor" muestra "CGI / FastCGI").phpinfo()
no enumerará los módulos habilitados. En ese caso, consulte Cómo comprobar mod_rewrite en PHP CGI .Si está utilizando un archivo de configuración de hosts virtuales, asegúrese de que el host virtual en cuestión tenga la directiva en
AllowOverride All
algún lugar como este:Básicamente, esto indica permitir el procesamiento de todas las directivas .htaccess.
fuente
...
en<Directory ...>
? ¿Qué pondré allí? el directorio donde está .htaccess?ServerName
, no había cambiado el nombre del directorio, después de eso y un reinicio de Apache estaba bien.Si no se reconoce apache_get_modules () o no hay información sobre este módulo en phpinfo (); intente probar la reescritura de mod agregando esas líneas en su archivo .htaccess:
Y mod_rewrite.php:
fuente
consola:
fuente
Si
devuelve
true
entonces mod-rewrite está habilitado.fuente
La
apache_get_modules()
función perdefinida de PHP devuelve una lista de módulos habilitados. Para comprobar simod_rewrite
está habilitado, puede ejecutar el siguiente script en su servidor:Si el ejemplo anterior falla, puede verificar mod-rewrite usando su
.htaccess
archivo.Cree un
htaccess
archivo en la raíz del documento y agregue la siguiente rewriteRule:Ahora visite http://example.com/HelloWorld . Se le reenviará internamente a la página /index.php de su sitio. De lo contrario, si mod-rewrite está deshabilitado, obtendrá un error de servidor de 500 Internel.
Espero que esto ayude.
fuente
.htaccess
?puedes hacerlo en la terminal, ya sea:
tomado de 2daygeek
fuente
sudo
Esto funciona en CentOS:
Debería salir
rewrite_module (shared)
fuente
Si este código está en su archivo .htaccess (sin la verificación de mod_rewrite.c)
y puede visitar cualquier página de su sitio con un error de servidor 500.Creo que es seguro decir que la reescritura de mod está activada.
fuente
Puedes usar la función php
y comprobar mod_rewrite
http://in2.php.net/apache_get_modules
fuente
Si está en el sistema Linux, puede marcar todos los módulos habilitados para apache2 (en mi caso) en la siguiente carpeta: / etc / apache2 / mods-available
para escribir:
ll -a
si desea verificar los módulos disponibles para php (en este caso php 7) carpeta /etc/php/7.0/mods-available
digitar:
ll -a
fuente
solo crea una nueva página y agrega este código
y ejecute esta página, luego encontrará la posibilidad de saber que el módulo está disponible o no, si no, puede preguntarle a su alojamiento o si desea habilitarlo en la máquina local, luego consulte este tutorial paso a paso de youtube relacionado para habilitar el módulo de reescritura en wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s Icono del servidor Wamp -> Apache -> Módulos Apache y marque la opción de reescritura del módulo
fuente
Sé que esta pregunta es antigua, pero si puede editar su archivo de configuración de Apache
AllowOverride All
desdeAllowOverride None
fuente
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 a partir de
#
fuente
Este código funcionó para mí:
fuente
Estaba teniendo el problema exacto, lo resolví haciendo clic en la estructura personalizada y luego agregando
/index.php/%postname%/
y funcionaEspero que esto le ahorre a alguien el estrés por el que pasé al encontrar qué diablos estaba mal con eso.
fuente