首页 > 代码库 > Laravel nginx 伪静态规则

Laravel nginx 伪静态规则

最近在调研各种的PHP框架(CI, Cake, ThinkPHP, Laravel, Yii)感觉Laravel看上去很美,深入了解了下。开发机使用的是Apache,Stage上跑的nginx,部署后碰到所有的重定向都报404错误的情况。搞了半天,最后把下面这段代码加到nginx的配置中终于搞定了。

    try_files $uri $uri/ @rewrite;
    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }


配置文件看上去是这样的:

server {
    listen  80;
    server_name yourdomain.com;
    root 'PATH_POINTING TO YOUR PUBLIC WEB FOLDER';
    index index.php;

    try_files $uri $uri/ @rewrite;
    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }

    # PHP FPM configuration.
    location ~ \.php {
            fastcgi_pass                    unix:/var/run/php5-fpm.sock;
            fastcgi_index                   index.php;
            fastcgi_split_path_info         ^(.+\.php)(.*)$;
            include                         /etc/nginx/fastcgi_params;
            fastcgi_param                   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # We don't need .ht files with nginx.
    location ~ /\.ht {
            deny all;
    }
}

Laravel nginx 伪静态规则