thinkphp比较完美的nginx配置

本文提供了一个适用于 ThinkPHP 的 Nginx 配置示例,包括 URL 重写规则、错误页面设置及安全措施等内容,有助于开发者快速配置并优化 Nginx 服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原地址:http://www.thinkphp.cn/topic/34380.html


server {

    listen       80;
    server_name  thinkphp.lo;
    root /var/www;
    index  index.html index.htm index.php;


    error_page  404              /404.html;
    location = /404.html {
        return 404 'Sorry, File not Found!';
    }
    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html; # windows用户替换这个目录
    }


    location / {
        try_files $uri @rewrite;
    }


    location @rewrite {
        set $static 0;
        if  ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
            set $static 1;
        }


        if ($static = 0) {
            rewrite ^/(.*)$ /index.php?s=/$1;
        }


    }


    location ~ /Uploads/.*\.php$ {
        deny all;
    }


    location ~ \.php/ {
       if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
       fastcgi_pass 127.0.0.1:9000;
       include fastcgi_params;
       fastcgi_param SCRIPT_NAME     $1;
       fastcgi_param PATH_INFO       $2;
       fastcgi_param SCRIPT_FILENAME $document_root$1;
    }


    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }


    location ~ /\.ht {
        deny  all;
    }
}
### ThinkPHP6 在 Nginx 下的伪静态配置 对于ThinkPHP6,在Nginx环境下实现伪静态主要依赖于URL重写规则。这使得动态页面可以被伪装成静态文件的形式访问,从而提高SEO效果以及用户体验。 #### 配置Nginx支持ThinkPHP6伪静态 为了使Nginx能够正确解析ThinkPHP框架中的请求路径,需编辑站点对应的Nginx配置文件,通常位于`/etc/nginx/sites-available/default`或其他自定义位置。以下是适用于大多数情况的标准配置: ```nginx server { listen 80; server_name yourdomain.com; root /path/to/thinkphp/public; # 设置项目public目录作为Web根目录 location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php/$1 last; } location ~ \.php(/|$) { fastcgi_pass unix:/var/run/php/php7.x-fpm.sock; # 根据实际环境调整版本号 include snippets/fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 上述配置确保了所有未匹配具体资源的请求都会交给`index.php`处理,并保留原始URI以便框架内部路由机制正常工作[^1]。 #### 测试与验证 完成以上修改后保存更改并重新加载Nginx服务以应用新的配置设置。可以通过命令行执行如下操作来平滑重启Nginx而不中断现有连接: ```bash sudo systemctl reload nginx # 或者使用 sudo service nginx reload ``` 接着尝试访问应用程序的不同部分,确认链接是否按预期显示而不会暴露底层的技术细节或参数[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值