我正在尝试在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不了解,所以我不确定最佳方法。
非常感谢。
答案 0 :(得分:1)
我认为您的IIS没有问题。您在Tributes控制器上有错误。在你的代码上。或蛋糕配置文件。
还要确保tmp文件夹能够(有权限)创建其日志和tmp文件。