Se encuentra usted aquí

Clean URLs en Drupal 7 con Nginx

Este es el código que encontré que sirve para hacer funcionar el clean url en Drupal 7.

server {

        listen 80;

        server_name [host];

        root /var/www/[document_root]; ## <-- Your only path reference.

        # Enable compression, this will help if you have for instance advagg module

        # by serving Gzip versions of the files.

        gzip_static on;

        location = /favicon.ico {

                log_not_found off;

                access_log off;

        }

        location = /robots.txt {

                allow all;

                log_not_found off;

                access_log off;

        }

        # This matters if you use drush prior to 5.x

        # After 5.x backups are stored outside the Drupal install.

        #location = /backup {

        #        deny all;

        #}

        # Very rarely should these ever be accessed outside of your lan

        location ~* \.(txt|log)$ {

                allow 192.168.0.0/16;

                deny all;

        }

        location ~ \..*/.*\.php$ {

                return 403;

        }

        # No no for private

        location ~ ^/sites/.*/private/ {

                return 403;

        }

        # Block access to "hidden" files and directories whose names begin with a

        # period. This includes directories used by version control systems such

        # as Subversion or Git to store control files.

        location ~ (^|/)\. {

                return 403;

        }

        location / {

                # This is cool because no php is touched for static content

                try_files $uri @rewrite;

        }

        location @rewrite {

                # You have 2 options here

                # For D7 and above:

                # Clean URLs are handled in drupal_environment_initialize().

                rewrite ^ /index.php;

                # For Drupal 6 and bwlow:

                # 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;

        }

        location ~ \.php$ {

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                include fastcgi_params;

                fastcgi_param SCRIPT_FILENAME $request_filename;

                fastcgi_intercept_errors on;

                fastcgi_pass unix:/tmp/phpfpm.sock;

        }

        # Fighting with Styles? This little gem is amazing.

        # This is for D6

        #location ~ ^/sites/.*/files/imagecache/ {

        # This is for D7 and D8

        location ~ ^/sites/.*/files/styles/ {

                try_files $uri @rewrite;

        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

                expires max;

                log_not_found off;

        }

}

Se tiene que colocar en el archivo de el sitio en que se quiere hacer funcionar el clean-url.

Que seria algo así: /etc/nginx/sites-available/mysite  sustituyendo mysite por el nombre del dominio.

Luego se tiene que reiniciar Nginx.

Este código lo encontré en :

http://iambusychangingtheworld.blogspot.mx/2014/01/drupal-enable-clean-u...

También esta esta pagina en github

https://gist.github.com/Mulkave/6103129

También el código oficial en el sitio de Nginx

https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/

Categorias: 
Versión: 

Añadir nuevo comentario