404 url​​ nginx 上的随机帖子

404 url​​ nginx 上的随机帖子

我在安装 Wordpress lemp 时遇到了一个有趣的问题。事情是这样的:

假设您有一个 URL, example.com/category-of-shoes该 URL 指向与此类问题相关的帖子。例如,当我输入不存在的帖子/页面时,example.com/category我并没有得到 404 响应,而是被跳转到example.com/category-of-shoes

这里可能存在什么问题?我维护的一些网站也出现这种情况,我担心有人可能会利用这一点。这是否与 cgi.fix_pathinfo 有关?


我的服务器配置文件:

upstream php {
    server 127.0.0.1:9000;
}
server {
    listen 80;

    set $host_path "/var/www/vhosts/example.com/";
    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log error;


    server_name  example.com;
    root   $host_path;

    charset utf-8;
    index  index.php;

    location ~ \.php {
           fastcgi_split_path_info  ^(.+\.php)(.*)$;
           fastcgi_pass 127.0.0.1:9000;
           include fastcgi_params;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           fastcgi_param  PATH_INFO        $fastcgi_path_info;
           fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_script_name;
   }

   location / {
            try_files $uri $uri/ /index.php$is_args$args;
            index  index.php;
   }
   location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
   }


    error_page   404             /404.html;
    error_page   500 502 503 504 /static.html;
}

另外,我对人们似乎为 nginx 上的 WP Permalink“重写”提供的所有选项感到有些困惑。我看到的大多数内容都围绕着: 块try_files $uri $uri/ /index.php$is_args$args;location /。有人可以向我解释一下这个问题吗?

相关内容