将 nginx 配置为从子文件夹进行服务器索引

将 nginx 配置为从子文件夹进行服务器索引

我在本地安装了一个 nginx web 服务器。web 根目录位于 /var/www 下

现在我有一个如下所示的项目:/var/www /test-project /src /tests

文件src夹是包含文件的文件夹index.php。现在我想在进入https://localhost/test-project浏览器时运行该网站。

目前这是我的配置:

server {
    listen          443;
    server_name     localhost;
    root            /var/www/;

    access_log  /usr/local/etc/nginx/logs/default-ssl.access.log  main;

    ssl                  on;
    ssl_certificate      ssl/localhost.crt;
    ssl_certificate_key  ssl/localhost.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        try_files $uri $uri/ /index.php?$args;
        include   /usr/local/etc/nginx/conf.d/php-fpm;
    }

    location ~ /test-project { #/(?!Templates|uploads).* {
        try_files $uri/ $uri/ /test-project/src/index.php?$args;
        include   /usr/local/etc/nginx/conf.d/php-fpm;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;
}

但目前我总是被重定向到 404 页面。有人能告诉我要更改什么才能让它运行吗?

答案1

保持根目录不变,并假设src文件夹的完整路径是/var/www/test-project/src

然后我会将测试项目路线的位置更新为:

location /test-project/ {
    try_files $uri /test-project/src/index.php;
}

如果你的src文件夹的完整路径是:/var/www/src,那么它将是:

location /test-project/ {
    try_files $uri /src/index.php;
}

答案2

您的根目录应该指向索引所在的文件夹,否则(在我看来)您做的事情是错误的。

答案3

Web 根目录应为 /var/www/test-project,正如您所说 index.php 在 src 中,然后转到https://localhost/src,还要检查您的权限和所有权。

谢谢

相关内容