Habilitar url’s limpias en Drupal 7 en un directorio de usuario de Apache (userdir)

Para habilitar las urls limpias en un Drupal 7 instalado en un directorio de usuario de Apache (con el módulo mod_userdir activado), tendremos que hacer lo siguiente

Verificar que tenemos habilitados los módulos de Apache ‘mod_rewrite’ y ‘mod_userdir’. Para ello comprobaremos que en el fichero /etc/httpd/conf/httpd.conf están descomentadas las líneas
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule userdir_module modules/mod_userdir.so

Indicar en nuestro fichero .htaccess dónde está instalado Drupal, modificando el fichero ~/public_html/drupal7test/.htaccess. Buscamos la linea con RewriteBase y la descomentamos, poniendo a continuación el directorio en el que tenemos instalado Drupal, en mi caso la línea queda así:
RewriteBase ~/public_html/drupal7test

Permitir la actuación del módulo mod_rewrite en nuestro directorio de usuario; para ello modificaremos el fichero /etc/httpd/conf/extra/httpd-userdir.conf de forma que quede activado el AllowOverride:

UserDir public_html
<Directory "/home/*/public_html">
  AllowOverride All
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory></code>

Más información sobre las url’s limpias en la página de Drupal.

Las instrucciones anteriores sirven literalmente para Archlinux, si se hace en otra distribución de Linux es muy posible que los directorios donde se ubiquen los ficheros de configuración sean distintos. Para localizarlos, deberemos utilizar el comando (como root):
find /etc -name <nombre del fichero>

Anuncios

URL’s limpios de Drupal en 1&1

Pues gracias a educasitio he encontrado solución a cómo conseguir que los sitios con Drupal alojados en el hosting 1And1 puedan activar la característica de URL’s limpios. Basta con editar el archivo .htaccess y la sentencia:
En Drupal 6:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

modificarla para que quede:

RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

En Drupal 7

RewriteRule ^ index.php [L]

modificarla para que quede:

RewriteRule ^ /index.php [L]

Como casi siempre, lo que parece un problema muy grande, tiene una solución muy sencilla.

Ejecutar el cron de Drupal automáticamente

Pues esto también es muy fácil, pero el comando que hay que poner en el crontab se las trae. Primero hay que ejecutar:

$crontab -e

Para editar las tareas programadas. Si es la primera vez que lo hacemos nos pedirá confirmación para elegir el editor que deseamos usar. El más simple es el “nano”.

En el archivo que se abre, hay que incluir la siguiente linea:

15 * * * * wget -O - -q -t 1 http://www.misitiodrupal.es/cron.php

Salvamos, salimos, y ya está. A partir de ese momento cada hora en el minuto 15, se ejecutará el cron de nuestro sitio Drupal.

Esta página web nos permite crear nuestro crontab sin necesidad de memorizar su sintaxis. Pero sólo nos quita una parte del problema, pues los parámetros del wget, evidentemente, no están inlcuidos en ella.