Сниппет NGINX для WordPress

Сниппет NGINX для WordPress

Ниже приведен пример готовой конфигурации NGINX, позволяющей CMS WordPress корректно отображать ЧПУ (человеко-понятные урлы). В раздел location / конфигурационного файла сайта на WP (/etc/nginx/sites-available/sitename.ru) добавьте следующие строки:

if (!-e $request_filename) {
   rewrite ^.+/?(/wp-.*) $1 last;
   rewrite ^.+/?(/.*\.php)$ $1 last;
   rewrite ^(.+)$ /index.php?q=$1 last;
}

Полный листинг конфигурационного файла:

server {
    root /var/www/sitename.ru/public_html;
    index index.php index.html index.htm;
    server_name sitename.ru;

     location / {
                try_files $uri $uri/ =404;
                if (!-e $request_filename) {
                   rewrite ^.+/?(/wp-.*) $1 last;
                   rewrite ^.+/?(/.*\.php)$ $1 last;
                   rewrite ^(.+)$ /index.php?q=$1 last;
                }
        }
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

Теперь протестируйте конфиг перезапустите NGINX:

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ service nginx restart

И в админ-панели WordPress, в разделе Настройки — Постоянные ссылки, переключите флажок на опцию «Название записи» или «Произвольно».

wplinks