在IIS上运行CakePHP站点时出现Page Not Found错误

时间:2014-03-12 15:21:08

标签: php .htaccess cakephp iis

我正在尝试在IIS7上运行CakePHP网站,但一直收到一个我不确定如何解决的错误。我在主页上收到了“找不到页面”消息,并且链接不遵循URL结构 - 所有链接在域段中都有.localhost。

当我加载主页时,我收到以下错误:

找不到页面

    Error: The requested address '/' was not found on this server.
Stack Trace
APP\Controller\TributesController.php line 20 → TributesController->_checkTribute()
[internal function] → TributesController->beforeFilter(CakeEvent)
CORE\Cake\Event\CakeEventManager.php line 248 → call_user_func(array, CakeEvent)
CORE\Cake\Controller\Controller.php line 670 → CakeEventManager->dispatch(CakeEvent)
CORE\Cake\Routing\Dispatcher.php line 184 → Controller->startupProcess()
CORE\Cake\Routing\Dispatcher.php line 162 → Dispatcher->_invoke(TributesController, CakeRequest, CakeResponse)
APP\webroot\index.php line 109 → Dispatcher->dispatch(CakeRequest, CakeResponse)
ROOT\index.php line 43 → require(string)

我认为这可能是URLRewrite设置的问题,但我不确定,因为我已经玩过规则(来自不同的搜索结果)并且它没有停止。目前设置为:

       <rewrite>
        <rules>
            <rule name="Rewrite routed access to assets(img, css, files, js, favicon)"
              stopProcessing="true">
                <match url="^(img|css|files|js|favicon.ico)(.*)$" />
                <action type="Rewrite" url="app/webroot/{R:1}{R:2}"
                  appendQueryString="false" />
            </rule>
            <rule name="CakePHP" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>

数据库已设置好,应该没问题,但是我不确定问题是否归结到期望数据库输入的页面。在IIS中,网站正在查看顶级根文件夹而不是webroot。如果我改变了这个错误,那么错误仍然存​​在,我放松了造型。

网站(UAT网站)是......

我已经检查了这个问题,但解决方案也没有奏效:Rewrite rules not working for CakePHP on IIS

我对CakePHP不了解,所以我不确定最佳方法。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为您的IIS没有问题。您在Tributes控制器上有错误。在你的代码上。或蛋糕配置文件。

还要确保tmp文件夹能够(有权限)创建其日志和tmp文件。