首页 > 编程语言 >php实现动态网站静态化

php实现动态网站静态化

时间:2024-04-04 13:55:21浏览次数:23  
标签:index 动态 nginx 静态 网站 PHP php

用PHP实现:将动态网站整个网站静态化时用到(不光可以静态化PHP的网站,其他语言的也可以)

1、站点目录下创建index.php文件:

<?php
//站点域名
Sta::srart("https://域名");

class Sta{
    
    public static $domain = '';
    
    public static function srart($domain){
        self::$domain = $domain;
        self::handle();
    }
    
    public static function error($msg){
        echo $msg;
        die();
    }
    
    public static function handle(){
        $path = $_SERVER ['REQUEST_URI'];
        $path1 = explode('?',$path)[0];
        $dir_arr = explode('/',$path1);
        $dir = [];
        $file_name = '';
        foreach ($dir_arr as $key=>$v){
            if($key>0 && $key<count($dir_arr)-1){
                $dir[] = $v;
            }
            if($key===count($dir_arr)-1){
                $file_name = $v;
            }
        }
        if($file_name==''){
            $file_name = 'index.html';
        }
        $dir = implode('/',$dir);
        try{
            $file_content = file_get_contents(self::$domain.$path);
            if($dir){
                if (!is_dir($dir)){
                    if (!mkdir(iconv("UTF-8", "GBK", $dir),0777,true)) self::error("dir $dir create error");
                }
            }
            file_put_contents('./'.$dir.'/'.$file_name,$file_content);
            echo $file_content;
            die();
        }catch(Exception $e){
            self::error($e->getMessage());
        }
    }
}

2、设置你的nginx伪静态为:

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}

3、设置你的nginx默认文档为:

index.html
index.php

至此,大功告成。

标签:index,动态,nginx,静态,网站,PHP,php
From: https://www.cnblogs.com/phpyangbo/p/18114135

相关文章

  • wamp/xammp医院预约挂号病历管理系统PHP+vue_snsj0
     医院病历管理系统主要有管理员,用户和医生三个功能模块。以下将对这三个功能的作用进行详细的剖析。本论文将对医院病历管理系统相关的技术以及网站开发技术进行分析和研究,在深入了解医院病历管理的过程以及合格要求后,结合用户的实际情况,研究医院病历管理系统的设计与实现,期望......
  • PHP代码审计——Day 5-postcard
    漏洞解析classMailer{privatefunctionsanitize($email){if(!filter_var($email,FILTER_VALIDATE_EMAIL)){return'';}returnescapeshellarg($email);}publicfunctionsend($data){if(!isset($data['to'])......
  • Dubbo源码解析-Provider端监听注册中心动态配置原理
    上篇我们介绍了provider服务暴露源码,地址如下Dubbo源码解析-Provider服务暴露Export源码解析_dubboexporter-CSDN博客    本文主要针Dubbo服务端注册中心节点,实现动态配置变更原理,从dubbo源码角度进行解析。    Dubbo服务端动态配置原理比较简单,也是面试......
  • PHP代码审计——Day 4-False Beard
    漏洞解析classLogin{publicfunction__construct($user,$pass){$this->loginViaXml($user,$pass);}publicfunctionloginViaXml($user,$pass){if(//防止输入的参数含有<和>符号(!strpos($user,'<')||!strpos($user,'&......
  • PHP代码审计——Day3-Snow Flake
    漏洞解析//实现了一个基本的MVC(Model-View-Controller)结构,通过动态加载控制器类和数据,并调用控制器的方法来实现基本的页面渲染。//自动加载函数,用于动态加载类文件。当使用尚未定义的类时,PHP会自动调用该函数来加载类文件。此处,__autoload函数会尝试加载与类名$className......
  • 常见面试题--动态规划介绍(附C++源码实现)
    关注我,持续分享逻辑思维&管理思维;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。【图解《程序员面试常见的十大算法......
  • 前端(动态雪景背景+动态蝴蝶)
     1.CSS样式<style>html,body,a,div,span,table,tr,td,strong,ul,ol,li,h1,h2,h3,p,input{font-weight:inherit;font-size:inherit;list-style:none;border-spacing:0;border:0;border-collapse:......
  • 【HTML】简单制作一个动态3D正方体
     目录前言开始HTML部分JS部分CSS部分效果图总结前言    无需多言,本文将详细介绍一段代码,具体内容如下: 开始    首先新建文件夹,创建两个文本文档,其中HTML的文件名改为[index.html],JS的文件名改为[script.js],CSS的文件名改为[style.css],创建好后......
  • 【高校科研动态】贵州师大博士生封清为一作在J. Clean. Prod.发文:中国扶贫搬迁对生态
    目录1.文章简介 2.主要研究内容    3.文章引用1.文章简介 论文名称:QuantifyingtheextentofecologicalimpactfromChina'spovertyalleviationrelocationprogram:AcasestudyinGuizhouProvince第一作者及通讯作者:封清(博士研究生),周忠发(教授)第一作......
  • 代码随想录算法训练营三刷day44 | 动态规划之 完全背包 518. 零钱兑换 II 377. 组合总
    三刷day44完全背包基础知识问题描述举个栗子518.零钱兑换II1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组377.组合总和Ⅳ1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp......