感谢您阅读我的帖子。
我在使我的网站应用程序(Yii2)在Azure Web Apps中正常工作时遇到问题。我已经将Yii2网站从现有服务器迁移到Azure Web Apps。经过下面列出的大量操作,我可以访问该网站。
主主题加载成功,但抛出“ 404页面未找到 所请求的页面丢失,或地址已更改”“正文中的错误以及“菜单栏”中的其他链接也无法正常工作。”“您正在寻找的资源已被删除,名称已更改或暂时不可用。”
Azure资源的配置如下:
应用程序服务应用程序设置:
迁移步骤:
htdocs
FTP到我的应用服务计划(\site/wwwroot
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
在Azure中,KUDU Inferface浏览(\ site \ wwwroot \ config)并将db.php更改为
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=xxxx.mysql.database.azure.com;dbname=xxxxx',
'username' => 'xxxxxxx@xxxxxxxxxxxxxxxxxx',
'password' => 'xxxxxx',
'charset' => 'utf8',
];
site/wwwroot
并执行以下代码行
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php composer.phar global require "fxp/composer-asset-plugin:^1.2.0"
浏览到目录(\ site \ wwwroot \ web)并使用以下代码行更改index.php:
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
if(!headers_sent()) {
header("Status: 301 Moved Permanently");
header(sprintf(
'Location: https://%s%s',
$_SERVER['HTTP_HOST'],
$_SERVER['REQUEST_URI']
));
exit();
}
}
// comment out the following two lines when deployed to production
('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../config/web.php');
(new yii\web\Application($config))->run();
它们现在可以成功加载主页,但是主体内出现404错误,并且“正在查找的资源已被删除,名称已更改或暂时不可用。”尝试访问标题中的其他页面时。
我还指出,我有2个.htacss文件 我的\ site \ wwwroot中的1x和我的\ site \ wwwroot \ web中的1x 曾尝试删除它们并在(site \ wwwroot \ web)中配置一个web.config文件,但仍然无法正常工作。
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect rquests to default azure websites domain" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^yoursite\.azurewebsites\.net$" />
</conditions>
<action type="Redirect" url="https://mysitename.azurewebsites.net/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
由于Yii2在Azure Web App中并不出名,因此无法在任何地方找到解决方案。如果您能提供帮助,将不胜感激。