Задать вопрос
@Ksander88

Как настроить правильно редиректы на vps NGIX на Wordrpess?

Здравствуйте, переехали недавно на VPS и столкнулись с проблема настройки ngix конфигураций, нет опыта в этом, в htacess все было корректно.
Не разбираюсь в этом вообще, но сейчас из явного на сайте нет редиректа со всех страниц без слеша на слеш, пример: site.ru/category а нужно site.ru/category/, решение нашел, но оно ломает формы Contact form 7, видимо как-то json нужно исключать, решение было: (в консоле такие ошибки лезут и формы перестают работать: wp-json/contact-form-7/v1/contact-forms/3598/feedback/:1
Failed to load resource: the server responded with a status of 404 ())

if (!-f $request_filename) {
        rewrite ^(.*[^/])$ $1/ permanent;
   }


у нас кажется раньше было что-то такое в htacess, если не ошибаюсь этот, он как раз формы не ломал:
кажется json этот и отвечает за формы, но как это сделать для vps я не знаю

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !^/wp-json
  RewriteCond %{REQUEST_URI} !^/wp-admin
  RewriteCond %{REQUEST_URI} !^/([_0-9a-zA-Z-]+)/wp-json
  RewriteCond %{REQUEST_URI} !^/([_0-9a-zA-Z-]+)/wp-admin
  RewriteRule ^([^.]+)([^./])$ %{REQUEST_URI}/ [L,R=301,NE]
</IfModule>


Сейчас у нас такой файл настроил специалист, без редиректа:
server {
    server_name site.ru www.site.ru  ;


    listen 45.130.42.228:443 ssl;
    

    ssl_certificate "/var/www/httpd-cert/site.ru_2024-04-26-20-58_20.crt";
    ssl_certificate_key "/var/www/httpd-cert/site.ru_2024-04-26-20-58_20.key";
    add_header Strict-Transport-Security "max-age=31536000" always;


    http2 on;

    charset utf-8;

    gzip on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon;
    gzip_comp_level 6;

    set $root_path /var/www/site_ru_usr/data/www/site.ru;
    root $root_path;
    disable_symlinks if_not_owner from=$root_path;
    

    location / {
        index index.php index.html;
        try_files $uri $uri/ /index.php?$args;
    }


    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
     }


    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri $uri/ /index.php?$args;
        expires 365d;
    }

    location @fallback {
        fastcgi_pass unix:/var/run/site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    include "/etc/nginx/fastpanel2-sites/site_ru_usr/site.ru.includes";
    include /etc/nginx/fastpanel2-includes/*.conf;


    error_log /var/www/site_ru_usr/data/logs/meshar.ru-frontend.error.log;
    access_log /var/www/site_ru_usr/data/logs/meshar.ru-frontend.access.log;
}


server {
    server_name site.ru www.site.ru  ;
    listen 11.111.11.111:10;
    return 301 https://$host$request_uri;


    error_log /var/www/site_ru_usr/data/logs/meshar.ru-frontend.error.log;
    access_log /var/www/site_ru_usr/data/logs/meshar.ru-frontend.access.log;
}
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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