[Nginx] location与rewrite配合处理项目的重写和路...

本文详细介绍了如何使用Nginx处理特定项目的路由匹配,通过$_SERVER['REQUEST_URI']进行路径匹配,并隐藏index.php。同时,文章讲解了如何设置前端静态资源路径与实际服务器路径之间的映射,以及使用rewrite规则实现路径重写。
某个项目中路由是通过$_SERVER['REQUEST_URI']来进行的匹配处理 , 并且隐藏了index.php
前端路径是http://域名/static/css/xxx.css 而实际路径是位于 /绝对路径/template/static中
 
在这样的两种情况下 , 不改代码的条件下使用nginx处理
[url=][/url]
server {        listen       80;        server_name  xxxx;        root   /var/www/html/admin;        location / {            index  index.php;        }        location /static {                root /var/www/html/admin/template;        }        if (!-e $request_filename) {                rewrite ^/((?!static).*)$ /index.php/$1 last;                break;        }        location ~ \.php {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            #fastcgi_connect_timeout    10s;            fastcgi_read_timeout        60s;            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;        }}[url=][/url]
 
最关键的是location块匹配到static后 ,设置了新的root
rewrite正则 , 除去了static , 因为单纯的靠!-e $request_filename排除不了 ,因为它路径是404 , 还是会进判断 ,只能靠正则了
if (!-e $request_filename) {
rewrite ^/((?!static).*)$ /index.php/$1 last;
break;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值