首先需要在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 |
System | Linux debian1 3.2.0-4-amd64 #1 SMP Debian 3.2.73-2+deb7u1 x86_64 |
Build Date | Oct 9 2016 22:59:11 |
路由控制这是mvc框架的核心功能,我们可以用这种方式来保证一个入口
有人用的web服务器是apache,可以使用
在线Apache .htaccess文件转Nginx配置文件 - aTool在线工具
网址是:http://www.atool.org/htaccess2nginx.php
这样还是很方便的。