IIS实际上是将<?php ... ?>
代码发送到浏览器而不是执行它。
但是,仅适用于根http://domain.com/index.php
文件。
该文件夹中的所有其他.php文件和子文件夹中的index.php文件都按预期执行。
如何让我的root index.php代码执行?
更新:“index.php”是我网站的默认文件...
alt text http://img412.imageshack.us/img412/4130/defaultdocumentmt9.gif
答案 0 :(得分:4)
您似乎已正确配置了处理程序。
如果您使用的是<? ... ?>
,请确保拥有
short_open_tag = On
在你的php.ini。
答案 1 :(得分:4)
我遇到了这个问题并最终将源代码视为PHP文件的编码。显然我已经设置我的编辑器使用Unicode(2字节unicode,而不是UTF-8)作为编码。这会导致PHP无法看到<?
标记,但浏览器似乎能够正确读取Unicode文件,因此查看源会显示实际的PHP代码。 (即使文件有一个content-type = utf-8元标记!)以ANSI或UTF-8编码保存PHP文件解决了这个问题。
很多调试都找到了这个简单的解决方案,所以我想我会把它添加到其他有这个问题的人身上。
问题的一个有趣的副作用是Firefox和Chrome似乎没有加载CSS文件。经过进一步检查,我发现浏览器应该采用与HTML相同的CSS编码,除非在CSS文件中明确指定。在Chrome或Firefox中查看CSS会显示中文字符!实际上,这有助于我找到解决方案。
答案 2 :(得分:3)
更新:我发现了PHP 5和IIS 7的一些可能的解决方法。如果这些解决方案不起作用,请提供有关index.php
,IIS设置或尝试使用IIS 6兼容性的更多详细信息。< / p>
答案 3 :(得分:2)
您是否尝试过弹跳(停止/重启)IIS?甚至可能重启机器?我知道有些时候我已经完成了一些IIS配置更改,我本来应该只需要反弹才能生效,直到整机重启才会生效。
答案 4 :(得分:1)
尽管这是一个古老的问题,但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>