使用Laravel项目的Azure Web App错误404

时间:2017-10-29 06:58:47

标签: php git laravel azure azure-web-app-service

我有一个用Laravel编码的项目在localhost上工作得很好。

我是从git存储库上传到Azure的。 当我尝试访问这些页面时,我收到了以下消息:

"您要查找的资源已被删除,名称已更改或暂时无法使用。"

我已经用Google搜索了我遇到的问题,但似乎没有任何效果。

编辑:

我的Azure WebApp设置为访问site \ wwwroot \ public \作为应用程序。

Click here to see the picture showing what I said above

4 个答案:

答案 0 :(得分:1)

由于我没有尝试过,我删除了Azure上的应用并创建了另一个应用。这次,它奏效了。我不知道为什么。可能我的旧文件在某处已经损坏了......我不知道。

答案 1 :(得分:1)

可以通过将web.config文件放在公用文件夹中来解决此问题。

https://github.com/Azure-Samples/laravel-tasks/blob/master/public/web.config

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)/$" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
        </rule>
        <rule name="Imported Rule 2" 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" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

此处提供有关整个过程的更多详细信息:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-php-mysql

答案 2 :(得分:0)

该错误表明您要查找的文件不在服务器上,或者您没有正确配置web.config文件。

如果您使用任何特殊文件名,我建议您通过FTP查看该文件存在于服务器上。

我建议您enable diagnostic logging for Web Apps获取详细的错误消息和日志。

另外,请检查它是部署还是运行时问题,如下所述:https://github.com/projectkudu/kudu/wiki/Deployment-vs-runtime-issues

答案 3 :(得分:0)

由于Laravel使用\public作为入口点,并且Azure Web App无法识别.htaccess文件, 你能尝试通过Azure portal应用程序设置中将虚拟目录设置为site\wwwroot\public吗?

enter image description here