目前,我在docker容器中设置了nginx / php-fpm,并将wordpress文件夹作为卷安装在容器中。我希望xyz.com/blog和xyz.com/blog/的功能完全相同。 我有以下nginx配置:
server {
listen 80 default_server;
server_name 0.0.0.0;
root /mnt/blog;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php last; #converted from .htaccess
}
}
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
在点击xyz.com/blog/
时 - wordpress网站按预期加载,但当我删除尾部斜杠(/) - xyz.com/blog
时,我收到301 Moved Permanently
错误。如何确保xyz.com/blog
和xyz.com/blog/
行为正确并加载wordpress网站?
答案 0 :(得分:0)
您希望/blog
在未先重定向到/index.php
的情况下调用/blog/
。
根据您现有的解决方案,您可以将if (!-e ...
更改为if (!-f ...
。有关详细信息,请参阅this document。
但是,可以通过以下方式实现相同的功能:
location / {
try_files $uri /index.php;
}
有关详细信息,请参阅this document。