## nginx rewrite重写 http服务器其实就是一个tcp协议的服务,所有的请求头, 请求体都是数据包; 服务器收到请求url,再根据规则转发给解析器、静态资源来处理响应 ## 示例 请求地址`http://127.0.0.1/aa/bb/ccc` nginx只是收到了这个请求,默认转发给php解析或者是其他的程序处理。 你可以重写url规则, 实现自定义; ``` location / { rewrite /baidu http://baidu.com break; # 相当于 127.0.0.1/baidu 重定向到 http://baidu.com } location / { rewrite /aa/bb(.*) /re$1 break; # 相当于 127.0.0.1/aa/bb/ccc 重定向到 127.0.0.1/re/ccc # rewrite 支持正则 } ``` ## thinkphp的伪静态 来分析下比较常用的tp框架伪静态规则 ``` location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; # 相当于 /Index/woc 为 /index.php?s=Index/woc 提供给index.php解析到控制器等 # ^(.*)$ 等于 取所有字符串 } } ```