Nginx重写目录并排除子目录

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

这是我当前的nginx配置文件。

server {
    listen 6063;

    root /var/www/html/project;
    index index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm-backend.sock;
    }    

    rewrite ^/admin/(.*)$ /admin/index.php break;
}

对/ admin的任何访问都将重写为/admin/index.php。

现在由于某些原因,我必须将css文件夹,js文件夹添加到/ var / www / html / project / admin / includes。

因此,新的要求是,对/ admin / includes / *的任何访问都将访问CSS和JS的实际文件。其他所有访问权限/ admin / *(不是/ admin / includes)将重写为/admin/index.php。

或者我可以说如果不存在对文件夹/ admin的任何访问权限(例如/admin/includes/css/example.css),然后重写为/admin/index.php

谢谢,

php nginx url-rewriting subdirectory fastcgi
1个回答
0
投票

[确定,我找到了答案。

location /admin {
    if (!-e $request_filename) {
        rewrite (.*)$ /admin/index.php last;
    }
}

如果对文件夹/ admin的访问权限不存在(它不是css或js文件之类的真实文件,则将重写为/admin/index.php。

© www.soinside.com 2019 - 2024. All rights reserved.