Lab / Drupal

Drupal 7: ЧПУ на Nginx

Не так давно решил собрать руками Nginx сервер и конечно-же не мог не накосячть. После переноса на сервер сайта на друпале никак не хотели запускаться ЧПУ. Не долго изучая конфиги nginx хоста обраружил, что не хватает всего двух строчек в конфиге. Дабы не забыть про это снова собственно и пишу эту заметку.

В server вашего хоста необходимо добавить вот такие строки:

location / {
 try_files $uri $uri/ @rewrite;
}
location @rewrite {
 rewrite ^/(.*)$ /index.php?q=$1 last;
}

Ну и для наглядности весь конфиг:

server {
 listen 80 default_server;
 listen [::]:80 default_server;

 root /var/www/html/mysite.com;
 index index.php index.html index.htm index.nginx-debian.html;

 server_name mysite.com;


 location / {
 try_files $uri $uri/ @rewrite;
 }
 location @rewrite {
 rewrite ^/(.*)$ /index.php?q=$1 last;
 }


 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }

 location ~ /\.ht {
 deny all;
 }
}

P.S. Это сырой конфиг без оптимизации которую я обычно пишу для всех друпал сайтов, но об этом как нибудь напишу отдельную статью.