一、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应用更有优势。