Привет
Я загружаю на веб-сервер (не локальный) приложение Yii2 в: http://acastro.wc.lt/
Проблема заключается в том, что при попытке переключения между языками ENG или PT платформа выдает ошибку # 1 — Произошла внутренняя ошибка сервера.
В моем Layout.php у меня есть следующие ссылки внутри nav :: Widget:
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => [
['label' => 'ENG', 'url' => ['/site/langus'], 'visible' => Yii::$app->user->isGuest],
['label' => 'PT', 'url' => ['/site/langpt'], 'visible' => Yii::$app->user->isGuest],
И в моем siteController у меня есть действия для переключения между языками, которые переводят приложение в режиме реального времени:
public function beforeAction($action) {
if (Yii::$app->session->has('lang')) {
Yii::$app->language = Yii::$app->session->get('lang');
} else {
Yii::$app->language = 'us';
}
return parent::beforeAction($action);
}
public function actionLangus(){
Yii::$app->session->set('lang', 'us'); //or $_GET['lang']
return $this->redirect(Url::toRoute(['site/index']));
}
public function actionLangpt(){
Yii::$app->session->set('lang', 'pt'); //or $_GET['lang']
return $this->redirect(Url::toRoute(['site/index']));
}
На моем локальном компьютере, установленном MAMP в моем MAC OSX Yosemite, ссылки работают очень хорошо и в реальном времени меняют язык приложения, но на живом сервере ссылки ENG и PT генерируют ERROR # 1.
Возможно, есть проблема в моих действиях в выражении перенаправления
Yii::$app->session->set('lang', 'pt'); //or $_GET['lang']
Любые идеи о том, что может быть причиной такого поведения только на живом сервере? PHP с сервера обновлен до одной из последних и последних версий.
Не уверен, что это проблема, так как все выглядит хорошо. Но убедитесь, что у вас нет коротких тегов. Вы не должны иметь <?
Кроме <?=
а также <?php
, Обычно локальные установки более удобны, но короткие метки на сервере отключены.
РЕДАКТИРОВАТЬ
Также попробуйте return $ this-> redirect ([‘site / index’]);
Других решений пока нет …