wamp中自己编写的项目放在www文件夹中打不开无法访问的解决方案

老版本解决方案:

打开www目录下的index.php文件,

搜索if (is_dir($file) && !in_array($file,$projectsListIgnore)) ,判断逻辑里面的a标签就是目录,

http://后面加上localhost/即可

 

——————————————————————————————————————————————

本人使用的是最新的wamp3.0.6版本,代码长得不一样。不过也差不多

下面是分析(博主建立的项目文件夹为w3c_learn,并且因为iis的原因将wamp的服务端口设置为8080)

这个是没有改变文件内容时点击自己建的项目时浏览器的报错。

可以看出,服务器的原意是将这个文件名作为主机名,并加上了自己设置的端口(8080)。因为试过用http://localhost:8080/w3c_learn/这个URL,是能打开项目网页的。所以不难想出,解决这个问题的途径是有两个的。

1将项目文件夹的URL设置为http://localhost:8080/w3c_learn/

2http://w3c_learn:8080/这个URL解析到(映射到?不知道哪个说法合适)http://localhost:8080/w3c_learn/

说实话两种方法我都还不会,但是老版的解决方案提供了线索。对应到新版的代码,可以看出,这段代码就是用来合成这个项目文件夹的URL的。

所以对这段代码进行了分析:

再贴一遍

代码只是一个很简单的if...else...语句。用来创建自建项目列表的,每个列表项都是一个带有超链接(<a>)的<li>

代码核心是href的属性值,也就是URL

if句块合成的URL是:http://+文件名(w3c_learn+端口号(:8080)+/

else句块合成的URL是:http://localhost+端口号+/+文件名+/

结合报错出来的这个URLhttp://w3c_learn:8080/),不难看出这个if...else...执行的是第一句,而我们要的正好是第二句,也就是else语句执行的结果。

——————————————————————————————————————————————————

所以,解决方案在这里

打开www目录下的index.php文件,

搜索if (is_dir($file) && !in_array($file,$projectsListIgnore))

if的语句块和else的语句块进行对调就ok了。像这样

重要提醒:修改完文件要保存,退出wamp,再重启。

————————————————————————————————————————————

补充:这里的解决方案用的是上面提到的两种途径中的第一种,如果有会第二种,使用映射或解析的欢迎回复补充。

  另外,这种方法只是简单看了这一小段代码进行分析的。看起来似乎是官方php配置文件本身有问题?我想应该不是吧,如果有知道更规范的设置方法的大神,烦请不吝赐教。

posted @ 2016-09-24 20:11  冯潇  阅读(1671)  评论(0编辑  收藏  举报