@DiGiTAll

Как настроить ЧПУ в WordPress на Nginx?

На сервере установлена связка Apache + Nginx.
Нужно, чтобы заработало ЧПУ в WordPress в таком виде:
site.ru/%category%/%postname%.html
В настройках самого WP это уже прописано.
Что нужно прописать в конфиге nginx? Сейчас он выглядит так:

server {
		server_name mysite.ru www.mysite.ru;
		listen 178.100.100.97;
		charset UTF-8;
		disable_symlinks if_not_owner from=$root_path;
		set $root_path /var/www/mysite/data/www/mysite.ru;
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			root $root_path;
			access_log /var/www/nginx-logs/mysite isp;
			access_log /var/www/httpd-logs/mysite.ru.access.log ;
			error_page 404 = @fallback;
		}
		location / {
			proxy_pass http://178.100.100.97:81;
			proxy_redirect http://178.100.100.97:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
                       
		}

		location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
			proxy_pass http://178.100.100.97:81;
			proxy_redirect http://178.100.100.97:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location @fallback {
			proxy_pass http://178.100.100.97:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location ^~ /webstat/ {
			auth_basic "Restricted area";
			auth_basic_user_file /var/www/mysite/data/etc/31337.passwd;
			try_files $uri @fallback;
		}
		include /usr/local/ispmgr/etc/nginx.inc;
	}
  • Вопрос задан
  • 1248 просмотров
Пригласить эксперта
Ответы на вопрос 2
cimmwolf
@cimmwolf
Веб-разработчик
Вставьте в location / вот такую настройку:
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml)$ {
    try_files /does_not_exists @fallback;
}

Получится вот такой конфиг:
server {
    server_name mysite.ru www.mysite.ru;
    listen 178.100.100.97;
    charset UTF-8;
    disable_symlinks if_not_owner from=$root_path;
    set $root_path /var/www/mysite/data/www/mysite.ru;
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
      root $root_path;
      access_log /var/www/nginx-logs/mysite isp;
      access_log /var/www/httpd-logs/mysite.ru.access.log ;
      error_page 404 = @fallback;
    }
    location / {
        try_files $uri $uri/ /index.php?$args;
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @fallback;
        }              
    }

    location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
      proxy_pass http://178.100.100.97:81;
      proxy_redirect http://178.100.100.97:81/ /;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
    }
    location @fallback {
      proxy_pass http://178.100.100.97:81;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
    }
    location ^~ /webstat/ {
      auth_basic "Restricted area";
      auth_basic_user_file /var/www/mysite/data/etc/31337.passwd;
      try_files $uri @fallback;
    }
    include /usr/local/ispmgr/etc/nginx.inc;
  }
Ответ написан
Комментировать
@nikolayvaganov
вставить :
if (!-e $request_filename ) { rewrite ^(.*)$ /index.php?q=$1; }

в location /
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы