Nginx try_files $uri 子目录中的参数

问题描述 投票:0回答:1

我的文件夹结构看起来像这样:

app/main/index.php
app/main/catalog.php
app/main/login.php

我想使用

app/main directory
 访问 
localhost/admin/{file_name}

中的文件

localhost/admin/index.php
应使用
app/main/index.php
localhost/admin/catalog.php
应使用
app/main/catalog.php

我的配置看起来像这样

location ~* ^/admin {      
          alias $base_root/projectname/src/;
          try_files /app/main/index.php  =404;
                              
          fastcgi_pass   localhost:9010;
          fastcgi_read_timeout 20m;
                                                                                                 
          fastcgi_buffers 8 16k;                                           
          fastcgi_buffer_size 32k;        

          fastcgi_index  index.php;                                                      
                                                                      
          include /etc/nginx/fastcgi_params;
                                            
          fastcgi_param       SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          fastcgi_ignore_client_abort     off;
    }

注意:这里需要使用

alias
,不能使用
root

此配置适用于

index.php
:我打开
localhost/admin
,我得到
index.php
内容

但是我无法弄清楚其他文件的配置

我尝试使用

try_files /app/main/$uri =404;
,但它只在所有页面上给出 404 错误

nginx nginx-config
1个回答
0
投票

对于您的要求,只需重写 URI 就足够了:

rewrite ^/admin/(.*)$ /app/main/$1 last;

# your standard PHP handler location
location ~ \.php$ {
   # fastcgi configuration
   fastcgi_pass ...
}
© www.soinside.com 2019 - 2024. All rights reserved.