He enviado mis archivos .htaccess a los servidores de producción, pero no funcionan. ¿Sería un reinicio el siguiente paso o debería marcar otra cosa?
He enviado mis archivos .htaccess a los servidores de producción, pero no funcionan. ¿Sería un reinicio el siguiente paso o debería marcar otra cosa?
Respuestas:
No es necesario reiniciar para realizar cambios en .htaccess. Algo más está mal.
Asegúrese de que su .htaccess incluya la declaración
RewriteEngine encendido
que es necesario incluso si también está presente en httpd.conf. También verifique que .htaccess sea legible por el proceso httpd.
Verifique el error_log: le informará de cualquier error en .htaccess si se está utilizando. Poner un error de sintaxis intencional en .htaccess es una buena comprobación para asegurarse de que se esté utilizando el archivo; debería obtener un error 500 en cualquier página del mismo directorio.
Por último, puede habilitar un registro de reescritura usando comandos como los siguientes en su httpd.conf:
RewriteLog "registros / reescritura"
RewriteLog Nivel 7
El archivo de registro así generado le dará el sangriento detalle de qué reglas de reescritura coincidieron y cómo se manejaron.
No :
Apache permite la gestión descentralizada de la configuración a través de archivos especiales ubicados dentro del árbol web. Los archivos especiales se suelen llamar
.htaccess
, pero se puede especificar cualquier nombre en la directiva AccessFileName ... Dado que los archivos .htaccess se leen en cada solicitud, los cambios realizados en estos archivos tienen efecto inmediato ...
De la documentación de apache: más comúnmente, el problema es que AllowOverride no está configurado de manera que se cumplan sus directivas de configuración. Asegúrese de no tener un AllowOverride None en vigor para el alcance del archivo en cuestión. Una buena prueba para esto es poner basura en su archivo .htaccess y volver a cargar. Si no se genera un error del servidor, es casi seguro que tenga AllowOverride None en efecto.
Tengo el mismo problema y parece que la publicación de PiedPiper sobre AllowOverride fue de gran ayuda. Verifique su archivo httpd.conf para "AllowOverride" y asegúrese de que esté configurado en Todos.
En caso de .htaccess, no es necesario reiniciar si no está funcionando, las razones probables incluyen.
AllowOverride Es posible que no se establezca qué usuario puede establecer dentro de httpd.conf o puede que tenga que contactar al administrador del servidor.
Verifique el nombre del archivo .htaccess, debe ser .htaccess, no htaccess.txt, consulte aquí la guía sobre cómo crear uno.
Trate de uso Options -Indexes
o deny all
tipo de directiva sencilla para ver si está funcionando o no.
borre el caché del navegador cada vez que tenga una regla para redireccionamientos o similar, si el redireccionamiento anterior está almacenado en caché, parece que las cosas no funcionan.
LogLevel alert rewrite:trace7
. Después de reiniciar Apache , debería ver los rastros en el error.log Espero que ayude. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging