繁体   English   中英

IIS上的PHP编码只有index.php或default.php可以直接访问

[英]Coding PHP on IIS only index.php or default.php can be accessed directly

我正在运行IIS7,并且在最长的时间内,我仅能加载index.php。 所有其他请求的文件在浏览器中返回“找不到文件”类型的消息。 我已经建立了自己的OOP框架,使其几乎没有问题。 现在我正在做一些ajax的东西。 Ajax 需要使用一个以上的文件,因为如果我只是使用索引文件来获取数据,那么它还将运行index.php中的所有其他代码。 因为我使用的是Framework,所以一次仅运行index.php的选定部分的逻辑是不可能的 我什至甚至使用了我之前写的一个旧的“内容切换器”。 基本上,您像这样选择要加载的文件:localhost / site / index.php?page = test。 这是行不通的。 我不仅发现这种情况使我更加恼火,而且让IIS感到好奇的是,IIS将允许我将注册表类包含在index.php中,而我却没有包含test.php。 浏览器返回以下消息:“找不到文件”。 Test.php确实存在。 当我键入一个随机的不存在的文件名时,我的“内容切换器”中的错误处理程序将引发其自己的自定义错误:“文件不存在”。 如果我不了解,我会说IIS正在酝酿中。

因此,whats的神 f **国王交易吗? 以及如何解决?

请原谅我使用粗话,但经过两天的海峡编码(6小时的睡眠),然后坐在屁股上7个小时,没有任何进展可以真正实现。

在所有这些时间之后,我仍然在编码时遇到了最奇怪的问题。 以这种速度,我可能会成为有史以来最糟糕的程序员,但是却成为最佳的调试器。

这听起来像是IIS配置问题,因此您可以在serverfault.com上获得更好的响应。

是仅找不到PHP文件,还是如果创建test.html也会返回404s?

您是否检查了所创建新文件的文件权限? 安全和共享设置?

是否有针对该域的任何HTTP重定向设置?

将近10个小时后,我知道了。 IIS7返回404的至少原因之一。 请记住,这很奇怪,可能是一个错误。 错误的PHP代码: $foo = $_GET['bar']; 仅当地址栏中没有为“ bar”提供值时,才会导致404。 就像我说的那样,这种行为是愚蠢的,不会影响索引或默认文件。

我无法重新登录,但是如果mod可以为Rob Drimmie的“答案”表示赞赏,因为他的建议帮助我找到了解决方案。

非常感谢Rob。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM