laravel 如何在nginx中配置到一个已经有的站点的路径下

现在配置文件如下,已经有一个站点在工作了。新建了一个laravel的工程,在其他路径:/var/www/html/laravel.

如何配置才能正常访问 sms.dev/laravel/path ?

server{
        listen 80;
        server_name sms.dev;
        index index.php index.html index.htm;
        root /var/www/html/sms;
        location /laravel/ {
            # 这里如何配置呢?
        }
        location ~ .*\.(php|php5)?$
        {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fcgi.conf;
        }
        
        if (!-e $request_filename) {
                return 404;
        }
}

阅读 6.5k
5 个回答

stackoverflow 上面找到了答案:https://stackoverflow.com/que...

location ^~ /app/ {
    alias /var/www/laravel/public/;

    if (!-e $request_filename) { rewrite ^ /app/index.php last; }

    location ~ \.php$ {
        if (!-f $request_filename) { return 404; }

        include snippets/fastcgi-php.conf;

        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
}

谢邀。

方式很多种。

1.匹配到 localtion 后,修改 root 即可,推荐方式
2.匹配到 location 后,内部反向代理到新的 server 即可。

新手上路,请多包涵

遇到同样的问题,nginx下,在二级目录,不知如何配置

location /xxx {

try_files $uri $uri/ /xxx/index.php?$query_string;

}

新手上路,请多包涵

server {
    listen          88;
    server_name     _;
    client_max_body_size 100M;
    client_body_timeout 1m;
    
    listen            89 ssl;
    ssl_certificate   conf/ssl/ssl.crt;
    ssl_certificate_key  conf/ssl/ssl.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    

    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    
    location = /50x.html {
        root   html;
    }
    
    location = /phone {
        rewrite ^/phone$ /phone/ redirect;
    }
    location /phone/ {
        #进入项目
        root    "/usr/local/nginx/html/XXXXXXX/public";
        set $web_pre /phone;
        index   index.php;
        #赋值自定义的uri
        set $real_uri $uri;
        if ( $uri ~ /phone/(.*)$ ) {
            set $real_uri $1;
        }
        #静态资源优先
        if ( $real_uri ~ \.(gif|jpg|jpeg|png|bmp|swf|js|css|wmv|ogg|woff2|woff|ttf|eot|mp4|ico)$ ) {
            rewrite .* /$real_uri break;
            expires 30d;
            break;
        }
        # php脚本
        fastcgi_index  index.php;
        # 针对thinkphp的路由  /index.php/xxx /xxx /没东西(主页)
        if ($real_uri = ""){
            set $real_uri index.php;
        }
        if ($real_uri ~* "^[a-zA-Z0-9]+/") {
            set $real_uri index.php/$real_uri;
        }
        if ($real_uri !~* "^(index\.php|admin\.php)") {
            return 403;
        }
#        set $real_uri index.php;
        set $fastcgi_script_name_real /$real_uri;
        set $query_string_real -;
        if ($real_uri ~ (^[a-zA-Z0-9]+\.php)(.*)$) {
            set $fastcgi_script_name_real /$1;
            #针对thinkphp的伪静态
            set $query_string_real s=$2;
        }
        include        fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name_real;
        fastcgi_param  SCRIPT_NAME        $web_pre/$real_uri;
        fastcgi_param  DOCUMENT_URI       $web_pre/$real_uri;
        fastcgi_param  QUERY_STRING       $query_string_real;
        fastcgi_connect_timeout 75;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 100;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 8 64k;
        if ( $real_uri ) {
            fastcgi_pass   127.0.0.1:9000;
            break;
        }
        return 404;
    }
    
    access_log  logs/88.access.log  main;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题