nginx的配置问题,采用url路由,如何配置nginx.conf

采用php框架,单一入口,url方式为:http://localhost//controller/action/param/value,全部都由index.php处理,u... 采用php框架,单一入口,url方式为:http://localhost//controller/action/param/value,全部都由index.php处理,url中的controller、action、param、value分别是控制器,控制器的方法,参数名称,参数值,并不是实际存在的目录。 展开
 我来答
hansuper88
2011-08-10 · TA获得超过6627个赞
知道小有建树答主
回答量:838
采纳率:0%
帮助的人:689万
展开全部
这个貌似只要定向到 index.php 就 OK 了吧。
关键是你框架的 Router 类够强壮,nginx.conf 里面基本不用多写啥的

location / {
index index.php;
if (!-f $request_filename){
rewrite ^/(.+)$ /index.php?$1& last;
}
}

location ~ .*\.php?$ {
fastcgi_pass 127.0.0.1:3333;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
追问
重定向到index.php后的处理不是这样的,index.php直接获得url中的controller、action等值,还是处理/a/b这样的格式,url中并不出现index.php。只不过是把所有请求的url交给index.php处理。
追答
其实你的框架实现方法和 ZF 的 URI 原理很相似,都是全局 index.php 为入口,所有的请求全部由 index.php 来 rule。原链接可能是这样的 http://127.0.0.1/index.php?someaction=someparam&other
按照我的规则, rewrite 之后 url 看起来应该是这样的 http://127.0.0.1/someaction/someparam
URL 中并不会出现类似 http://127.0.0.1/index.php/someaction/someparam 这样的情况。
如果不能够出现这种目录式的 URL 结构,那么肯定是你的 URI 和 Router 没有抽象到位
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式