我在安裝 WordPress lemp 時遇到了一個有趣的問題。事情是這樣的:
假設您有一個網址 example.com/category-of-shoes
,可以指向有關此類問題的貼文。例如,當我輸入不存在的帖子/頁面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 永久連結「重寫」提供的所有選項感到有點困惑。我看到的大部分內容都圍繞著: 街區try_files $uri $uri/ /index.php$is_args$args;
內部location /
。有人可以跟我解釋一下這個問題嗎?