php静态资源是指什么问题,thinkphp5 模块名和静态资源文件夹重名问题

thinkphp5初学者,自己尝试做了一个小项目,环境为 IIS7 + msyql + php ,其中发现一些问题,请大神解答一下:

首先,按照thinphp5规范,站点根目录部署在public文件夹,在application中创建index模块,其中的index 控制器中有个 download方法:

class Index

{ ……………

public function download(){

do something;

}

download内容比较简单,就是读取数据中下载内容名称和链接,然后用模板输出一个下载列表。

然后我使用urlrewrite隐藏掉index.php/index/index/ 访问路径为 http://zzz.com/download/ (zzz.com为本地站点)

bV5jZe?w=620&h=208

这样访问本来是没有问题的

bV5jZq?w=466&h=236

但是,出于习惯,我把下载文件目录设置为了download。然后在网站根目录下(public文件夹)建了download文件夹,然后把下载文件放进去。

当我再次访问 http://zzz.com/downlaod/ 时候,IIS报错:

bV5j4x?w=1034&h=670

而里面的文件 http://zzz.com/downlaod/1.pdf 可以正常访问。

我想了想这个是可以理解的,此时访问 http://zzz.com/downlaod/ 的时候会访问download文件夹,而download文件夹中没有默认文档(index.php index.html等)。所以IIS会报错。

但是我不大明白的是,thinphp5对url处理的顺序是什么样的呢?

是不是说 如果有符合url的静态路径的时候,优先访问静态文件?

如果没有的话,再由thinkphp5去处理url然后访问对应的模块/控制器/方法…… ?

另外,url重写发生在哪一步呢?从上面的情况来看,应该是:

IIS根据url直接寻找对应路径,找到了就直接读取,找不到则访问thinphp5入口文件,入口文件调用url重写得到符合自己规则的实际访问路径,然后执行……

(更新: 此处应该是IIS先直接寻找url路径,找不到则根据url重写规则寻找重写后的路径,因为重写路径中包含index.php,所以才访问到thinphp5的应用。此处算是想明白了。)

但总感觉哪里不对。

有没有办法可以让 http://zzz.com/downlaod/ 能正常访问呢?

另外,thinkphp5 没有参数的方法,在访问路径中加上参数,为什么不报错呢?

即: http://zzz.com/downlaod/一个… 会直接访问 http://zzz.com/downlaod/ 而不报错。

求大神指点迷津……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值