Azure上的Yii2 webapp无法正常工作

时间:2016-11-11 16:09:42

标签: php azure yii yii2

我正在建立一个基于Yii + Yii2框架的网站+服务应用程序。 我尝试在Azure http://xxxxxx.azurewebsites.net/上托管它。建立在Yii1上的网站工作正常。在Yii2端点上构建的服务返回404.服务在本地工作。

以下是详细信息:

Local: Xampp server
htdocs/
       myapp/
             dashboard/            ---> this the website folder (Yii)
             modules/
                     v1/           -----> here are my yii2 services and controllers.

现在我在本地尝试使用网址:http://localhost/myapp/v1/srvc/srvdetails 工作正常。

当我尝试Azure网址时,http://xxxxxx.azurewebsites.net/v1/srvc/srvdetails无效。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

根据您的说明,您的应用中似乎有一个.htaccess文件隐藏了index.php模式的网址。由于PHP脚本由Azure Web Apps上的IIS处理,因此您可以尝试生成包含以下内容的web.config文件,而不是.htaccess

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>

<directoryBrowse enabled="false" />

  <rewrite>
    <rules>
      <rule name="Hide Yii Index" stopProcessing="true">
        <match url="." ignoreCase="false" />
        <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" 
              ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" 
              ignoreCase="false" negate="true" />
        </conditions>
        <action type="Rewrite" url="index.php" appendQueryString="true" />
      </rule> 
    </rules>
  </rewrite>
</system.webServer>
</configuration>

否则,您可以为我们提供完整的应用程序结构,以便进一步诊断。如有任何疑问,请随时告诉我。