我在安装 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 /
。有人可以向我解释一下这个问题吗?