代码之家  ›  专栏  ›  技术社区  ›  D.R.

Nginx。拉雷维尔。如何在子文件夹中设置多个端点

  •  3
  • D.R.  · 技术社区  · 7 年前

    我有这样一个项目结构

    <root>/public/laravel_app/index.php — Laravel index file

    <root>/public/index.php — CraftCMS index file

    我想加载 应用程序位于

    https://<domain>

    拉拉维尔 应用程序位于 https://<domain>/laravel_app

    这是我的 vhost.conf

    server {
        listen 443 ssl;
    
        index index.php index.html;
    
        root /var/www/public;
    
        ssl_certificate       /var/www/docker/certs/nginx.crt;
        ssl_certificate_key   /var/www/docker/certs/nginx.key;
    
        location / {
            try_files $uri /index.php?$args;
        }
    
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass app:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
    

    我已经浏览了几乎所有相关的SO问题,并尝试了很多东西,因此,如果可能的话,请发送与我的配置相关的建议。

    我不是一个系统管理员,我是一个Apache用户(在那里,它以这种方式工作,没有任何调整),所以如果我错过了一些明显的东西,我道歉。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Dharma Saputra    7 年前

    我认为你应该重写2个url,因为 laravel_app index.php 用于重写。

    server {
        ...
    
        root /var/www/public;
    
        ...
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location /laravel_app {
            try_files $uri $uri/ /laravel_app/index.php?$args;
        }
    
        ...
    }
    

    希望这样行

        2
  •  0
  •   SmoDav    7 年前

    改变

    location / {
        try_files $uri /index.php?$args;
    }
    

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    

    添加 $uri/ 告诉nginx查找具有uri名称的目录。