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,才能去吃飯哦!!!



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: