Configurando las url limpias de Drupal en un servidor web NGINX

El servidor web NGINX no entiende las directivas del fichero .htaccess, responsable de generarnos el sistema de url limpias en Drupal, con lo cual si llega el día que quieres usar un entorno web con NGINX prescindiendo del Apache te encontrarás con que no te funcionan las url limpias en tu proyecto. Por defecto, la configuración de NGINX dice algo así:
    server {
        server_name _;
        root /var/www/html;

        location / {
          try_files $uri @rewrite;
        }

        location @rewrite {
                rewrite ^/(.*)$ /index.php;
        }
Para que te funcione, debes hacer un par de cambios en el location y en el @rewrite del location. Esto funciona a la perfección:
    server {
        server_name _;
        root /var/www/html;

        location / {
                # This is cool because no php is touched for static content
                try_files $uri @rewrite;
        }
        location @rewrite {
                # Some modules enforce no slash (/) at the end of the URL
                # Else this rewrite block wouldn't be needed (GlobalRedirect)
                rewrite ^/(.*)$ /index.php?q=$1;
        }
Reinicia tu servidor NGINX y ya lo tienes. Esperamos que te sirva este artículo.
Categoría