您的位置:

ThinkPHP伪静态Nginx

一、ThinkPHP伪静态规则

ThinkPHP是一个开源的PHP框架,其伪静态规则是指通过URL重写实现静态化,为网站提升了性能和SEO优化。ThinkPHP的伪静态规则有两种:简单规则和复杂规则。

1、简单规则

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

简单规则通过判断请求的文件是否存在,如果不存在则重写URL,全部交给index.php处理。url以"/"开头,后面跟着任意个字符,s=后面是参数。

2、复杂规则

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

复杂规则和简单规则区别在于它支持"."等特殊字符。url可以包括".htm"等后缀。

二、Nginx伪静态文件

Nginx也是一款开源的Web服务器软件,其伪静态效果主要通过写伪静态文件来实现。伪静态文件内容包括两部分:location 和 rewrite。

1、location 部分

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

在location部分,首先判断请求的文件是否存在,如果不存在则重写URL交给index.php处理。

2、rewrite 部分

rewrite ^/([A-Za-z0-9]+)/?$ /index.php?s=home/$1 last;
rewrite ^/([A-Za-z0-9]+)/([a-z]+)/?([a-z]+)/?$ /index.php?s=home/$1/$2/$3 last;

rewrite部分包含了多条规则。第一条规则是将home模块下的控制器名作为URL的一部分;第二条规则是实现3级目录的URL重写。

三、宝塔Nginx伪静态

宝塔面板是一款服务器管理软件,其支持Nginx伪静态功能。有两种方式实现:宝塔自带伪静态文件或手动编写伪静态文件。

1、宝塔自带伪静态文件

在网站管理页面,点击伪静态按钮,选择“TP6伪静态”即可自动完成安装。此时伪静态文件会自动添加到.conf文件中。

2、手动编写伪静态文件

Nginx伪静态文件的路径:/www/server/nginx/conf/tp6.conf,如果需要修改伪静态规则,只需要修改tp6.conf文件即可。

四、Nginx与Apache区别

1、性能

Nginx采用事件驱动、异步非阻塞的方式处理请求,性能比Apache更高,能够处理更多的并发请求。

2、内存占用

Nginx内存占用比Apache更低,对于内存有限的服务器来说,Nginx更适合。

3、配置文件

Nginx的配置文件比较简洁,易于管理;而Apache配置文件比较复杂,配置的时候需要注意文件格式和语法。

4、模块支持

Apache支持的模块比Nginx多,特别是在动态语言和数据库连接方面,Apache更加成熟。

5、适用场景

Nginx适合处理静态资源,对于高并发、大流量的Web应用有很好的支持;Apache适合处理动态请求,对于多节点、高可用性的Web应用更有优势。