WordPress и NGINX – постоянные ссылки не работают с завершением слэша

Я добавил эту строку в конфигурационный файл nginx

try_files $uri $uri/ /index.php?$args; rewrite ^([^.]*[^/])$ $1/ permanent; #adding slash 

и постоянные ссылки работают нормально, но при добавлении / (см. правило перезаписи правила, как я его добавляю) NGINX дает мне ошибку 404.

Например, somedomain.com/post/ThisIsPermaLink (работает) после добавления slash somedomain.com/post/ThisIsPermaLink/ (дает ошибку 404)

Но все эти две версии работают в среде Apache. Apache перенаправляет все запросы без косой черты (somedomain.com/post/ThisIsPermaLink) на somedomain.com/post/ThisIsPermaLink/

Поэтому мне нужна такая же функциональность с NGINX

Я не думаю, что вам нужно это правило перезаписи, чтобы добавить косую черту. WordPress сделает перенаправление для вас.

Я использую этот код для отладки перенаправления:

 function wpse_287994_debug_redirect( $url ) { echo $url; die(); } add_action( 'wp_redirect', 'wpse_287994_debug_redirect' ); 

Когда я пытаюсь посетить адрес http://example.com/lorem-ipsum (эта страница должна существовать), над сценарием будет выводиться http://example.com/lorem-ipsum/ поэтому перенаправление на адрес с косой чертой работает ,

Моя конфигурация ngnix выглядит так:

 server { listen *:80; server_name example.com; root /var/www/example; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; index index.php index.html; location / { # try to serve file directly, fallback to index.php try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi.conf; fastcgi_pass 127.0.0.1:9070; } } 

В Nginx переписываются уже этой частью try_files $uri $uri/ /index.php?$args; , Эта часть означает нечто подобное.

Для начала записи с / character попробуйте загрузить файл из файловой системы, и если такого файла не переписать в index.php с аргументами.