SmythSys IT Consulting

Habilitar mod_rewrite en apache. Problemas con .htaccess

Ayer nos peleamos un poco con esto en un cliente…a ver si le ayuda a alguien. En nuestro caso fue para cambiar los enlaces permanentes de WordPress, pero puede ser para cualquier symlink o para hacer que reconozca lo que pongamos en el fichero .htaccess.

  • Primero debe estar el módulo rewrite (mod_rewrite) cargado en apache. ¿Como vemos esto? Fácil:
    Crea un fichero y llámalo, por ejemplo phpinfo.php. Dentro pon lo siguiente.
    <?php
    phpinfo();
    ?>

    Súbelo por FTP a tu sitio web y ejecutalo en el navegador (por ejemplo www.midominio.com/phpinfo.php)
    Entonces verás toda la información del php y de apache. En un apartado verás los módulos cargados y tiene que mencionarse el mod_rewrite.
  • Si no está cargado tienes que añadirlo. Te pongo los pasos para OpenSuse, se que en Ubuntu es más fácil…compruebalo para tu distribución:
    -Abre (con permisos de escritura) el fichero: /etc/sysconfig/apache2
    -Busca la línea con algo como (los módulos pueden variar): APACHE_MODULES=”suexec access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif userdir ssl php4″
    Antes de la última ” añade rewrite.
    – Guardalo.
    -Ejecuta SuSEconfig para que se actualicen los cambios en apache.
    – Ejecuta  /etc/init.d/apache2 restart para que coja los cambios.
    – Vuelve a comprobar el phpinfo.php.
  • Si todavía no funciona puede que no se te permita poner ficheros .htaccess personalizados. Para cambiar esto edita tu fichero de configuración de apache…en OpenSuse es /etc/apache2/default-server.conf
    Aquí puedes hacer el cambio para el directorio raíz…pero yo prefiero hacerlo sólo para el que quiero..por seguridad. En casos normales sólo tendrás un dominio, yo tengo varios así que voy a la línea del que quiero y busco algo como :
    <Directory “/srv/www/htdocs/smythsys”>
    Debajo de esa línea pongo AllowOverride All que permite que te saltes la configuración con comandos de .htaccess.
    Guardo el fichero y reinicio apache (por ejemplo con  /etc/init.d/apache2 restart )
  • Aquí puede pasarte como a nosotros, hacía caso del .htaccess, por lo tanto los cambios habían funcionado, pero daba error de permisos. Error 403 no te dejaba ver nada. No te preocupes, en nuestro caso era que no estaban activados los Symlinks.
    Ve de nuevo al fichero de Apache (/etc/apache2/default-server.conf) y debajo de lo que has puesto antes añade: Options +FollowSymlinks
    Esto activa los enlaces permanentes. Guarda el fichero, reinicia apache y prueba. Ya debería estar.
  • Si no comprueba la sintaxis de tu .htaccess y los permisos de los directorios por si acaso.

 

 

 

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).