我有一个在IIS 7上运行的网站,网站级别的默认文档设置为只有index.php。 如果我右键单击IISpipe理器中的网站,并select浏览我看到index.php文件在那里。 如果我只是浏览到像http://my.site.com这样的网站,我会在一堆diff语言中使用“Welcome”获得默认的IIS 7徽标。 如果我去http://my.site.com/index.php它带来的网站就好了。 我已经停止并启动了网站,并运行iisreset,但仍然没有运气。
Web.config的默认文档部分看起来像这样
<defaultDocument> <files> <clear /> <add value="index.php" /> </files> </defaultDocument>
我错过了什么?
所以你可以明确地调用这个文件,但是当你只使用127.0.0.1这样的默认地址的时候,它不起作用。 首先我要做的是确保默认文档也设置为index.php。 即使你正确地设置文件处理程序来识别PHP(如果你的index.php正确显示,它看起来像你有),IIS7不会这样做。
从“计算机pipe理”面板打开IIS7控制面板。 在“ 连接”下的标签上,单击“ 网站” ,即默认网站。 在标题为Default Web Site Home的右侧的下一个面板中向下滚动,直到您看到默认文档并点击它。 如果它没有index.php或任何你想要的默认文件名,那么点击操作下的添加,然后input你想使用的名称。 您可能需要重新启动服务,我不确定。 这应该解决问题,如果您只想在IIS下为单个站点执行此操作,则可以单击连接面板中的单个站点,然后单击“默认文档”。
用名为default.aspx或default.htm的页面进行testing,看看它们是否仍然作为默认文档工作。 如果他们这样做,那么您的托pipe服务提供商(我正在做一个假设)可能会覆盖默认文档。
另外请确保您在网站或全球级别的任何url重写规则不覆盖您的默认文档。
这个问题让我疯狂,有一个解决scheme,为我工作。
我有多个网站在IIS下运行。 有些网站在默认页面上正常工作,其他的则抛出错误。
对我来说,固定的是在每个网站的设置中查看ASP.net选项卡。 我们不运行-any- .aspx页面,但是此选项卡包含每个网站的web.config页面的path。
就我而言,那些不工作的网站已经失去了“ASP.net”版本。 通过告诉每个网站我正在运行4.0.x而不是这个设置是空白的,所有受影响的网站再次开始工作。 (作为参考,我们在服务器上运行ColdFusion.CFM页面)。
这个设置似乎保存了存储默认页面的单个web.config文件的path。 即使您没有运行.asp或.aspx页面,该设置对于您的服务器查找默认页面也是至关重要的。