【问题标题】:laravel not working in nginx as aliaslaravel 不能在 nginx 中作为别名工作
【发布时间】:2017-12-13 11:56:18
【问题描述】:

我有一个 nginx 网络服务器,我想在上面运行多个 laravel 项目

第一个项目工作正常,但第二个项目只打开主页,主页地址是

example.com/secondproject/

但是当我想打开时

example.com/secondproject/foo

nginx 将跳过 /secondproject 别名并在第一个项目中查找请求的路由(nginx 配置中服务器的根目录)

这是我的配置

server {
    listen 80;
    server_name example.com;
    rewrite_log on;

    location / {

        root /path/to/first-project/public;
        index index.php index.html index.htm;

        try_files $uri $uri/ $uri/index.php /index.php;

        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
        }

    }
    location /secondproject {

        alias /path/to/second-project/public;
        index index.php;

        location /secondproject {
            try_files $uri $uri/ $uri/index.php /index.php;
        }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
        }

    }

}

当我替换时

root /path/to/second-project/public;

而不是

alias /path/to/second-project/public;

nginx 显示 403!

【问题讨论】:

    标签: laravel nginx routes config alias


    【解决方案1】:

    试试这样:

       server {
    
            listen 80;
    
            server_name example.com www.example.com;
    
            location / {
    
                root /path/to/first-project/public;
                index index.php index.html index.htm;
    
                try_files $uri $uri/ $uri/index.php /index.php;
    
                location ~ \.php$ {
                    fastcgi_pass unix:/run/php-fpm/www.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $request_filename;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                }
    
            }
    
            # ------- second
    
            location /secondproject {
    
                root /path/to/second-project/public;
                index index.php index.html index.htm;
    
                try_files $uri $uri/ $uri/index.php /index.php;
    
                location ~ \.php$ {
                    fastcgi_pass unix:/run/php-fpm/www.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME $request_filename;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                }
    
            }
    
        }
    

    【讨论】:

    • 添加位置后无法重启nginx /secondproject { rewrite ^/* /secondproject last; }
    • 删除它,然后再试一次
    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多