在之前的文章中我们介绍过在Apache服务器上如何配置伪静态的方法,今天接着介绍在nignx服务器上伪静态规则的配置方法。
nginx里使用伪静态是直接在nginx.conf中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态。
nginx只需要打开nginx.conf配置文件或自己单独的配置文件,在server里面写需要的规则即可。示例:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
不过一般情况下直接在配置文件中添加伪静态规则不方便维护,所以通常会把伪静态配置写在外部文件中,再在配置文件中include进来。
首先创建外部文件:/usr/local/nginx/conf/rewrite/thinkphp.conf,
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
然后将上面的示例伪静态规则代码改成include代码:
include /usr/local/nginx/conf/rewrite/thinkphp.conf;
实现伪静态,实际用的是rewrite重定向url;
rewrite语法:rewrite regex replacement flag;
regex:是你要匹配url地址的正则(正则表达式我在这里就不介绍了)
1)last : 相当于Apache的[L]标记,表示完成rewrite,最常用
2)break : 停止执行当前虚拟主机的后续rewrite指令集
3)redirect : 返回302临时重定向,地址栏会显示跳转后的地址
4)permanent : 返回301永久重定向,地址栏会显示跳转后的地址