Рейтинг:0

Правило перезаписи не работает на Nginx

флаг in

Я хочу перенаправить с /sitemap.xml на /sitemap_index.xml.

Итак, я связался с разработчиком плагина и получил следующее правило перезаписи.

    # START Nginx переписывает карты сайта для Rank Math
    переписать ^/sitemap_index.xml$ /index.php?sitemap=1 последним;
    переписать ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 последним;
    # END Nginx переписывает карты сайта для Rank Math

Я поместил это правило перезаписи в двух местах, как показано ниже, но оно не работает.


сервер {

    # START Nginx переписывает карты сайта для Rank Math
    переписать ^/sitemap_index.xml$ /index.php?sitemap=1 последним;
    переписать ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 последним;
    # END Nginx переписывает карты сайта для Rank Math
}

сервер {
    место расположения / {
        try_files $uri $uri/ /index.php?$args;       
        # START Nginx переписывает карты сайта для Rank Math
        переписать ^/sitemap_index.xml$ /index.php?sitemap=1 последним;
        переписать ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 последним;
       # END Nginx переписывает карты сайта для Rank Math
    }
}

Я пробовал другие серверы nginx, потому что есть проблема с конфигурацией моего сервера Nginx, но он тоже не работает.

Версия nginx: nginx/1.21.6
Версия nginx: nginx/1.21.4

Может ли кто-нибудь сказать мне, какую часть я должен изменить, чтобы решить эту проблему?

Или же

есть ли другой способ перенаправить?

полный серверный блок


fastcgi_cache_path /dev/shm/nginx/levels=1:2 keys_zone=seoartgallery.com:100m max_size=1g inactive=1440m use_temp_path=off;

карта $http_accept $суффикс {
~изображение/webp .webp;
По умолчанию        '';
    }


сервер {
    слушать 80;
    корень /var/www/seoartgallery.com/htdocs;
    имя_сервера seoartgallery.com www.seoartgallery.com cdn.seoartgallery.com www.cdn.seoartgallery.com;
     add_header Strict-Transport-Security "max-age=0;";
    
    местоположение = /seo2.txt{}
    местоположение = /seo1.txt{}
    местоположение = /daumreviews.txt{}
    местоположение = /naverseo.txt{}
 
    местоположение = /npay_product_info{
    }
    
    местоположение = /npay_product_info.xml{
    }
    
    расположение ~ \.(jpg|jpeg|gif|webp)$ {
        try_files $uri = 404;
        сломать;
    }
  
   место расположения /{
            вернуть 301 https://$server_name$request_uri;
        }

}


сервер {
    слушать 80;
    имя_сервера artist.seoartgallery.com www.artist.seoartgallery.com;
    место расположения /{
            вернуть 301 https://$server_name$request_uri;
        }

}



##ì¬ê¸°ìë¶í° ì¸ì¤ìí¸ ë³¸ ííì´ì§ ì¤ì




сервер {
    слушать 443 ssl http2;
    слушать [::]:443 ssl http2;
    имя_сервера seoartgallery.com www.seoartgallery.com ссылка.seoartgallery.com www.link.seoartgallery.com;
    корень /var/www/seoartgallery.com/htdocs;
 
    индекс index.php index.html index.htm;
    
    # START Nginx переписывает карты сайта для Rank Math
    переписать ^/sitemap_index.xml$ /index.php?sitemap=1 последним;
    переписать ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 последним;
    # END Nginx переписывает карты сайта для Rank Math




    ssl_certificate "/etc/letsencrypt/live/seoartgallery.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/seoartgallery.com/privkey.pem";
    ssl_dhparam "/etc/ssl/certs/dhparam.pem";
    
    # Установите кеши, протоколы и принятые шифры. Эта конфигурация заслуживает оценки A+ SSL Labs.
    ssl_session_cache общий: SSL: 10 м;
    ssl_session_timeout 3 м;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers включен;
    ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5';
    ssl_session_tickets выключен;
    ssl_ecdh_curve X25519:prime256v1:secp521r1:secp384r1;
    ssl_stapling включен;
    ssl_stapling_verify включен;
    ssl_trusted_certificate /etc/letsencrypt/live/seoartgallery.com/chain.pem;
    преобразователь 8.8.8.8 8.8.4.4 действительный=300 с;
    резолвер_тайм-аут 5 с;
    ssl_buffer_size 4k;




  расположение ~ /wp-content/(?<path>.+)\.(?<ext>jpe?g|png|gif)$ {
        add_header Варьировать Принять;
                истекает через 365 дней;
       try_files /wp-content/uploads-webpc/$path.$ext$suffix /wp-content/$path.$ext$suffix $uri =404;
    }


    client_body_in_file_only чистый;
    client_body_buffer_size 16 КБ;
    send_timeout 30 с;
    
    доступ_лог выключен;
    error_log /var/log/nginx/seoartgallery.com.error.log;

        установить $skip_cache 0;

        если ($ request_method = POST) {
                установить $skip_cache 1;
               установить $skip_reason "POST";

        }
        если ($query_string != "") {
                установить $skip_cache 1;
               установить $skip_reason "QUERY_STRING";

        }
        если ( $cookie_woocommerce_items_in_cart = "1" ){ 
        установить $skip_cache 1; 
       установить $skip_reason WP_WooCommerce;

        } 
        если ( $cookie_woocommerce_cart_hash = "1" ){ 
        установить $skip_cache 1; 
       установить $skip_reason WP_WooCommerce;

        } 
        если ($cookie_wp_woocommerce_session_[a-z0-9] = "1" ){ 
        установить $skip_cache 1; 
           установить $skip_reason WP_WooCommerce;
        } 
        если ($cookie_wp_automatewoo_visitor_[a-z0-9] = "1" ){ 
        установить $skip_cache 1; 
           установить автоматизацию $skip_reason;
        } 
        если ( $cookie_wp_automatewoo_session_started = "1" ){ 
        установить $skip_cache 1; 
           установить автоматизацию $skip_reason;
        } 
        
    # Правила пропуска кеша для WooCommerce
    if ($request_uri ~* "/my-account-2.*|/thskan.*|/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
    установить $skip_cache 1;
       установить $skip_reason WP_WooCommerce;
    }

    если ( $arg_add-to-cart != "" ) { 
    установить $skip_cache 1; 
       установить $skip_reason добавить в корзину;
    }
    if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wp_automatewoo_session_started|wp_automatewoo_visitor_[a-z0-9]|arlsf_c|wp_automatewoo_[a-z0-9]|yith_wcwl_products|wordpress_no_cache|wordpress_logged_in |woocommerce_items_in_cart|woocommerce_cart_hash|tinv_wishlistkey") {
            установить $skip_cache 1;
           установить куки $skip_reason;
    }
    
    if ($request_uri ~* "(/my-account-2/|/thskan/|/my-account/|pum-[a-z0-9]|pum_[a-z0-9]|/checkout/|/ cart/|/wp-admin/|/xmlrpc.php|/wp-(app|cron|логин|регистрация|почта).php|wp-.*.php|/feed/|index.php|wp-comments- popup.php|wp-links-opml.php|wp-locations.php|карта сайта(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)" ) {
            установить $skip_cache 1;
           установить $skip_reason uri;

    }

    расположение ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        если (!-f $document_root$fastcgi_script_name) {
            вернуть 404;
        }

        fastcgi_read_timeout 300;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_buffers 64 16k; # по умолчанию 8 4k
 
        #ì´ ìëë fastcgi ì¶ê°ë¡ ì ë ¥íê².
        fastcgi_buffer_size 32 КБ;
        
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;
        fastcgi_cache seoartgallery.com;
        fastcgi_cache_valid 200 1440 м;
        
        fastcgi_cache_min_uses 1;
        fastcgi_cache_lock включен;
        
        add_header X-FastCGI-Cache $upstream_cache_status;
        add_header WP-Bullet-Skip $skip_reason;

        fastcgi_cache_valid 404 1 м;
        fastcgi_cache_valid 301 302 500 502 504 30 минут;

       включить fastcgi_params;
    }   
        



    
    # Файл с блочной точкой (.htaccess, .htpasswd, .svn, .git, .env и т. д.)
    расположение ~/\. {
        отрицать все;
    }
 
    # Заблокировать (файл журнала, двоичный файл, сертификат, сценарий оболочки, файл дампа sql) доступ.
    location ~* \.(log|binary|pem|enc|crt|conf|cnf|sql|sh|key|yml|lock)$ {
        отрицать все;
    }
    
 
    # Блокировать доступ
    location ~* (композитор\.json|композитор\.lock|композитор\.phar|участник\.md|лицензия\.txt|readme\.rst|readme\.md|readme\.txt|авторское право|ремесленник|gulpfile\ .js|пакет\.json|phpunit\.xml|журнал_доступа|журнал_ошибок|файл_грунта\.js)$ {
        отрицать все;
    }
 
    местоположение = /favicon.ico {
        log_not_found выключен;
        доступ_лог выключен;
    }
 
местоположение / тест5 {
        try_files $uri $uri/ /test5/index.php?$args;

        расположение ~ \.php$ {
                включить фрагменты/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }

}
 
   местоположение ^~/.well-known/apple-developer-merchantid-domain-association {
        позволять все;
  }


     расположение ~* \.(?:ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
    add_header Access-Control-Allow-Origin "*";
    истекает макс.;
    }
 
     client_max_body_size 100M;
     
     

    место расположения / {
        try_files $uri $uri/ /index.php?$args;       
        add_header Access-Control-Allow-Origin *;
        

    }

    местоположение = /wp-login.php {
    limit_req zone=один пакет=5 узлов;
    }

    # Разрешить программу проверки домена Lets Encrypt
    расположение ^~ /.well-known/acme-challenge/ {
        позволять все;
    }
    
    
      # Конфигурация Rocket-Nginx
    включить Rocket-nginx/conf.d/default.conf;
     включить оптимизацию/*.conf;
    #include conf.d/Fastcgi.conf;
}




флаг us
Вы хотите сделать перенаправление HTTP или внутреннее перенаправление nginx?
флаг in
Привет @TeroKilkanen, я уже написал редирект на https при подключении через http. Для этой проблемы я хочу перенаправить только на https://example.com/sitemap_index.xml при доступе к https://example.com/sitemap.xml.
флаг us
Извините, но это не ответ на мой вопрос.Вам нужен ответ перенаправления HTTP, где посетителю отправляется перенаправление 301 или 302? Или вы хотите, чтобы URL напрямую обслуживал другой файл?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.