nginx伪静态规则配置
网上很多关于伪静态的配置,我只想说"楼主的是亲测"
根据楼主的教程来nginx的伪静态规则配置,不成功的话,直播*!!!
背景,http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18
这样的url很难看吧,处女座程序猿怎么会容忍这样的事情发生的呢?
http://www.abc.com/parse-yangxignyi-18.html这样的还差不多。
学会了这两条规则配置,nginx的伪静态规则配置基本就大专毕业了,哈哈哈哈…
场景一:
http://www.abc.com/index.php/front/index/index
重写成 http://www.abc.com/a.html
场景二:把带参数的1.2解析成3
1.http://www.abc.com/index.php/front/index/parse/name/yangxignyi/age/18
2.http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18
3.http://www.abc.com/parse-yangxignyi-18.html
服务器配置文件:
server{
listen 80;
server_name www.abc.com;
root "D:/phpStudy/WWW/abc";
location / {
index index.php index.htm /public/index.html;
autoindex off;
include abc.conf;
#rewrite a.html /index.php/front/index/index last;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
伪静态配置文件可以直接写在 location / {} 里面的,不推荐这样做,建议新增加个rewrite.conf写伪静态文件会好点,include 进来就行了,这样可以在rewrite.conf里面写n多配置
location / {
index index.php index.htm /public/index.html;
autoindex off;
include rewrite.conf;
#rewrite a.html /index.php/front/index/index last;
}
rewrite.conf (这个文件自己创建就行了,文件内容写规则)
场景一的规则
http://www.abc.com/index.php/front/index/index
rewrite a.html /index.php/front/index/index last;
场景二的规则
#1.http://www.abc.com/index.php/front/index/parse/name/yangxignyi/age/18
#2.http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18
#3.http://www.abc.com/parse-yangxingyi-18.html
rewrite parse-(\w+)-(\d+).html /index.php/front/index/parse/name/$1/age/$2 last;
相信看过正则的同学都知道\w+和\d+是什么意思的吧,\w是数字字母下划线的意思,\d是数字的意思 +是最少一个{1,} 1到无穷大{1,3} 这样是1-3位数,关于正则这里就不多介绍啦,看下正则就知道了哦 !!!
写完规则,记得重启nginx!!!
文章作者:或非与
原文链接:https://blog.csdn.net/qq_27517377/article/details/79027015
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。