kentuck1213
@kentuck1213

Как исправить ошибку: Internal Server Error (Yii advanced )?

В основной дериктории создал файл .htaccess с данным кодов в нутри :
# prevent directory listings
Options -Indexes
# follow symbolic links
Options FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/admin/$
RewriteRule ^(admin)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin(/.+)?$ /backend/web/$1 [L,PT]

RewriteCond %{REQUEST_URI} ^.*$
RewriteRule ^(.*)$ /frontend/web/$1

в папке backend/web/ и frontend/web .htaccess
# use mod_rewrite for pretty URL support
RewriteEngine on
# if a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward the request to index.php
RewriteRule . index.php

Вообщем все как в этой статье mickgeek.com/yii-2-advanced-template-on-the-same-d...
В XAMP на винде это работала а вот на Linux LAMP не пашет.
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
включите mod_rewrite на апаче
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Смотрите логи апача.

Но лучше перенести содержимое frontend/web в корень публичной папки, для backend создать поддомен и содержимое backend/web перенести туда. А все остальное закинуть в папку "yii" и поднять на уровень выше публичной папки. При это и .htaccess мучать не прийдется, достаточно такого:
RewriteEngine on

# hide files and folders
RedirectMatch 404 /\.git
RedirectMatch 404 /composer\.
RedirectMatch 404 /.bowerrc
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php

Только надо будет в index.php поправить пути, вот пример:
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');

require(__DIR__ . '/../yii/vendor/autoload.php');
require(__DIR__ . '/../yii/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../yii/common/config/bootstrap.php');
require(__DIR__ . '/../yii/frontend/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/../yii/common/config/main.php'),
    require(__DIR__ . '/../yii/common/config/main-local.php'),
    require(__DIR__ . '/../yii/frontend/config/main.php'),
    require(__DIR__ . '/../yii/frontend/config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();


Получится что-то типа такой структуры:
-yii
--frontend
--backend
--common
--vendor
-public_html
--admin
---css
---js
---images
---index.php
---.htaccess
--css
--js
--images
--index.php
--.htaccess
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы