繁体   English   中英

nginx配置,不带斜杠

[英]nginx configuration with no trailing slash

我正在尝试配置我的Nginx。 我希望它提供一个php文件: dir/index.php ,但是这样做的方式是我可以通过localhost/dir请求(不带斜杠)访问它,而无需调用nginx 301 redirect 我尝试了这里找到的所有解决方案,但是失败了。 您能解释一下我如何达到这个目标吗? 这是我的配置:

server {
access_log /var/log/nginx/access_log combined;
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/mock-api-server.git;
index index.php;

location ~* \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
  }
}

您可以使用try_files/index.php附加到URI的末尾。 这必须是try_files语句的最后一个参数,因为新URI是在其他位置处理的。 有关详细信息,请参见此文档

例如:

location / {
    try_files $uri $uri/index.php?$args;
}
location ~* \.php$ {
    try_files $uri =404;
    ...
}

第二个try_files语句是避免将不受控制的请求传递给PHP 如果新URI不对应于实际的PHP文件,则返回404响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM