我有一个遗留的php websiste,它已经用nginx(和php 7.4)迁移到一个新的服务器上
我的nginx只有这个
server {
listen 80;
server_name domain.tld;
root /var/www/domain.tld;
error_log /var/log/nginx/domain.tld-error.log warn;
access_log /var/log/nginx/domain.tldt-access.log combined;
client_body_buffer_size 10M;
client_max_body_size 10M;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
如果我可以访问mydomain.tld,那么它可以正确地服务mydomain.tld/index.php
但是如果我访问mydomain.tld/subfolder或mydomain.tld/subfolder/,它就不能像我所期望的那样为mydomain.tld/subfolder/index.php提供服务
我做错了什么?
我决定修改丹尼尔W
我将location/
块移动到location~\.php$
下
但我并没有删除首字母/
,我还添加了$uri
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
location / {
index index.php;
try_files $uri $uri/index.php?$args;
}
如果我会发现一些陷阱,我会更新我的答案