Laravel在nginx下的重写规则

要将Laravel应用程序在Nginx服务器上进行链接重写,您需要在Nginx配置文件中添加以下规则:

server {
    listen 80;
    server_name yourdomain.com;
    root /path/to/laravel/public;

    index index.html index.htm index.php;

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

    error_log /var/log/nginx/laravel.error.log;
    access_log /var/log/nginx/laravel.access.log;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

请确保将yourdomain.com替换为您的域名,以及/path/to/laravel/public替换为您Laravel应用程序的公共目录的实际路径。

保存并重新加载Nginx配置后,您的Laravel应用程序应该能够在Nginx服务器上成功重写。

可以加上这些,让链接更加优雅

# 去除末尾的斜杠,SEO更加友好
if (!-d $request_filename){
    rewrite ^/(.+)/$ /$1 permanent;
}

# 去除index action
if ($request_uri ~* index/?$){
    rewrite ^/(.*)/index/?$ /$1 permanent;
}

# 根据laravel规则进行url重写
if (!-e $request_filename){
    rewrite ^/(.*)$ /index.php?/$1 last;
    break;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   html;
}

Leave a Comment

豫ICP备19001387号-1