为什么不是';t IIS正在执行我的站点根index.PHP文件的PHP代码


Why isn't IIS executing the PHP code of my site root index.php file?

IIS实际上是向浏览器发送<?php ... ?>代码,而不是执行它

但是,仅适用于根http://domain.com/index.php文件。

该文件夹中的所有其他.php文件和子文件夹中的index.php文件都按预期执行。

如何执行我的根index.php代码?


更新:"index.php"是我网站的默认文档。。。

alt文本http://img412.imageshack.us/img412/4130/defaultdocumentmt9.gif

您似乎已经正确配置了处理程序。如果您使用<? ... ?>,请确保short_open_tag = On在php.ini中。

我遇到了这个问题,最终找到了PHP文件的编码源。显然,我已经将编辑器设置为使用Unicode(2字节Unicode,而不是UTF-8)作为编码。这导致PHP看不到<?标记,但浏览器似乎能够很好地读取Unicode文件,因此查看源代码可以显示实际的PHP代码。(尽管该文件的内容类型为utf-8元标记!)将PHP文件保存为ANSI或utf-8编码解决了问题。

为了找到这个简单的解决方案,我进行了大量的调试,所以我想我应该在这里为其他有这个问题的人添加它。

这个问题的一个有趣的副作用是Firefox和Chrome似乎没有加载CSS文件。经过进一步的检查,我发现浏览器应该采用与HTML相同的CSS编码,除非在CSS文件中明确指定。在Chrome或Firefox中查看CSS会显示中文字符!事实上,这帮助我找到了解决方案。

  • IIS 5.1无法在根目录下正确运行PHP,但在所有其他文件夹中都可以正常运行
  • 使用IIS在站点根目录中运行WordPress博客

更新:我发现了一些可能的PHP 5和IIS 7的解决方案。如果这些解决方案不起作用,请提供有关index.php、IIS设置的更多详细信息,或尝试使用IIS 6兼容性。

  • IIS7上的PHP Includes问题
  • PHP5设置-包含和其他文件引用的相对路径

您尝试过跳过(停止/重新启动)IIS吗?甚至可能重新启动机器?我知道有几次我做了一些IIS配置更改,我发誓只需要一次反弹就可以生效,直到整个机器重新启动才开始。

尽管这是一个老问题,但11年后,这仍然是一个问题。我的工作是创建default.aspx文件并从中执行重定向。将文件保存到网站的根目录,然后将default.aspx添加到IIS中的默认文档中。确保将其移动到列表的顶部,以便优先处理它。下面的代码就是我使用的代码。

<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
    protected override void OnLoad(EventArgs e) {
    Response.Redirect("index.php");
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Title Of Your Website Here</title>
</head>