您的位置:首页 > 运维架构 > Nginx

nginx通过rewrite方式处理路由

2016-10-27 22:35 211 查看
首先需要在nginx.conf中增加一行,具体如图1所示



include /home/www/.htaccess;这一行,就说明你要让该文件中的rewrite配置生效

然后我们编辑.htaccess

具体代码

if (!-e $request_filename){
rewrite ^/(.*)$ /webroot/index.php?_ca_=$1 last;
}


这几句话的意思就是让所有找不到的文件都作为url参数,传递给index.php,这个是mvc框架程序的唯一入口

然后要记得重新加载nginx配置文件,具体命令 /etc/init.d/nginx reload

有人说可以直接使用service nginx restart这样的命令来让配置文件生效,这样是不好的的,因为restart实际上包含了停止nginx服务以及开启服务两个步骤,

会导致用户访问网站时没有响应,而reload命令则没有这种问题。

然后我们写程序可以测试一下

index.php文件内容如下:

echo "arrive here,111<br/>";
var_dump($_GET);
echo "<br/>";
phpinfo();


最后我们访问一下不存在的文件 http://192.168.1.111/a.php
会发现如下结果,就说明配置成功了

arrive here,111

array(1) { ["url"]=> string(5) "a.php"}



PHP Version 5.6.26

SystemLinux debian1 3.2.0-4-amd64 #1 SMP Debian 3.2.73-2+deb7u1 x86_64
Build DateOct 9 2016 22:59:11
路由控制这是mvc框架的核心功能,我们可以用这种方式来保证一个入口

有人用的web服务器是apache,可以使用

在线Apache .htaccess文件转Nginx配置文件 - aTool在线工具

网址是:http://www.atool.org/htaccess2nginx.php

这样还是很方便的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息