Я установил среду LEMP на машине Ubuntu 16.04, следуя инструкциям Как установить WordPress с LEMP в Ubuntu 16.04 учебник по архиву сообщества DigitalOcean. Все работает отлично, кроме случаев перехода на несуществующую страницу (например: https://www.example.com/page-that-doesnt-exist/
), он возвращает 200 и отображает домашнюю страницу (без перенаправления 301) вместо возврата 404. Однако при переходе на страницу под /blog/
области, которой не существует, то возвращается 404, как и следовало ожидать (например: https://www.example.com/blog/post-that-doesnt-exist/
).
Это не было бы предполагаемым поведением WordPress, верно?
Ниже представлена используемая конфигурация Nginx:
# Virtual Host configuration for www.example.com
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
server { # Redirect http:// to https://
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.au/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
root /var/www/www.example.com;
index index.php index.html;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Конфигурация nginx, которой вы поделились, не вызывает никаких проблем. Пожалуйста, проверьте конфигурацию wordpress один раз для настроек страницы 404.