nginxとwordpress 6.1.1 のconfigを見直して下記のように。
1つのserver定義でwpも他のHTMLを~ってやると、うまく動かなくてハマっていたので注意書きとしてメモを残す
server {
server_name www.sler.work;
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/www.sler.work/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.sler.work/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
access_log /var/log/nginx/sler.work_www.access.log;
error_log /var/log/nginx/sler.work_www.error.log info;
root /var/www/sler.work_www;
index index.html index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php {
include snippets/fastcgi-php.conf;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /wp-content/uploads/.+\.php$ {
return 403;
}
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
}
前回の設定で/wp-json/用の記述をしていたけど、document rootをserver内に書くようにしたら、ちゃんと動くようになったので問題なさそう。