Убираем /frontend/web/

Различные вопросы по установке и настройке фреймворка, конфигурции веб-сервера и IDE.
Ответить
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Убираем /frontend/web/

Сообщение Taron »

в корне в .htaccess написал

Код: Выделить всё

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    # deal with admin first
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} ^/(assets|css|js|images)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
    RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
    RewriteRule ^(.*)$ frontend/web/$1 [L]

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
</IfModule>

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
в frontend/web поставил .htaccess с кодом

Код: Выделить всё

# Если это папка или файл, открываем его
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# В противном случае перенаправляем на index.php
RewriteRule . index.php


и в frontend/main/config.php добавил код

Код: Выделить всё

                'urlManager' => [
                    'enablePrettyUrl' => true,
                    'showScriptName' => false,
                    //'suffix' => '.html',
                    'rules' => [
                        '' => 'site/index',


                        '<action>'=>'site/<action>',
                    ],
                ],
                'assetManager' => [
                    'basePath' => '@webroot/assets',
                    'baseUrl' => '@web/assets'
                ],
                'request' => [
                    'baseUrl' => ''
                ]
main.php получилась это -

Код: Выделить всё

<?php
$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'),
    require(__DIR__ . '/../../common/config/params-local.php'),
    require(__DIR__ . '/params.php'),
    require(__DIR__ . '/params-local.php')
);

return [
    'id' => 'app-frontend',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'frontend\controllers',
    'components' => [
        'request' => [
            'csrfParam' => '_csrf-frontend',
        ],
        'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => true,
            'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
        ],
        'session' => [
            // this is the name of the session cookie used for login on the frontend
            'name' => 'advanced-frontend',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],

                'urlManager' => [
                    'enablePrettyUrl' => true,
                    'showScriptName' => false,
                    //'suffix' => '.html',
                    'rules' => [
                        '' => 'site/index',
                        '<action>'=>'site/<action>',
                    ],
                ],
                'assetManager' => [
                    'basePath' => '@webroot/assets',
                    'baseUrl' => '@web/assets'
                ],
                'request' => [
                    'baseUrl' => ''
                ]
    ],
    'params' => $params,
];
на локале нормально работают url, страница www.sitname.ru/contacts (страница контактов) есть,
а после загрузке на сервер www.sitname.ru/contacts страницы нету.
в чем причина, почему тоже самое на локалке работает а на сервере - нет ?
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Убираем /frontend/web/

Сообщение Йож »

mod_rewrite включен?
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

в хостинге должна быть включена?
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Убираем /frontend/web/

Сообщение Onotole »

Taron писал(а): 2017.01.20, 11:36 в хостинге должна быть включена?
да
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

Да модуль включен, редирект делает.
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

но страницу не открывает
<?=Html::a( 'контакты', '/contacts' )?>
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

при написании такого url
http://domen.ru/index.php
выдает вот такую проблему

An Error occurred while handling another error:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request: site/error' in C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Controller.php:125
Stack trace:
#0 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Module.php(454): yii\base\Controller->runAction('error', Array)
#1 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\web\ErrorHandler.php(93): yii\base\Module->runAction('site/error')
#2 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\ErrorHandler.php(109): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException))
#3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException))
#4 {main}
Previous exception:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request: site/index.php' in C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Controller.php:125
Stack trace:
#0 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Module.php(454): yii\base\Controller->runAction('index.php', Array)
#1 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\web\Application.php(100): yii\base\Module->runAction('site/index.php', Array)
#2 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#3 C:\OpenServer\domains\domen.ru\frontend\web\index.php(17): yii\base\Application->run()
#4 {main}

Next exception 'yii\web\NotFoundHttpException' with message 'Page not found.' in C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\web\Application.php:112
Stack trace:
#0 C:\OpenServer\domains\domen.ru\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 C:\OpenServer\domains\domen.ru\frontend\web\index.php(17): yii\base\Application->run()
#2 {main}
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

как перевести 2 строчку?
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

не понял вопроса
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

как перевести это
with message 'Unable to resolve the request: site/error'
так понятнее?
https://google.gik-team.com/?q=with+mes ... 2Ferror%27
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

в комент поставил public function actions(), по этому выдавал эту ошибку. Снял комент и теперь при domen.ru/index.php выдает

Not Found (#404)
Page not found.
The above error occurred while the Web server was processing your request.
Please contact us if you think this is a server error. Thank you.


Спасибо, что помог узнать причину этой проблемы
Последний раз редактировалось Taron 2017.01.30, 17:34, всего редактировалось 2 раза.
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

Главная проблема в том что на локале нормально открывает страницу www.sitname.ru/contacts,
а после загрузке на сервер www.sitname.ru/contacts выдает серверную 404.
в чем причина, почему тоже самое на локалке работает а на сервере - нет ?
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

по аналогии - проверь, не закоменчен ли actionContacts - начнем с этого
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

нет, ту ошибку выбывала и на локалке. Показ страницы нормально работает на локалке, а на сервере - нет.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

1. ну... на локалке может быть не закоменчен, а на хостинге - да (забыл выгрузить).
2. в каком контроллере actionContacts?
3. создай какой нибудь простой actionTest(){
echo 111;
} на хостинге выведится?
4. Включи на хостинге debug панель - она тебе покажет все.
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

создал такой экшон

Код: Выделить всё

class SiteController extends Controller
{
    public function actionAll()
    {
        return 'okok';
    }
}
но нечего не получается,
при обращении domen.ru/all, тот же 404
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

следующий шаг
4. Включи на хостинге debug панель - она тебе покажет все.

5. Какой namespase у SiteController. Соответствует он дефолтному в конфиге?.. Наследуется от yii\web\Controller;
6. Правильно ли настроен .htaccess?
7. Так заходит site.ru/index.php?r=site/all ?

в общем - делай 4 пункт и показывай, какая ошибка в логе...
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

4, пытаюсь включить по http://beta.yiiframework.ru/forum/viewt ... 19&t=18967, но пока не получается, пытаюсь ((
5. namespace frontend\controllers;
6. .htaccess выше написал, нечего боллше не менял
7. выводит 404 , но уже 404 сайта а не хостинга.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Убираем /frontend/web/

Сообщение Loveorigami »

6.
в frontend/web поставил .htaccess с кодом
а где RewriteEngine ? Слов нет, честное слово...
Надо ж внимательнее копировать, откуда копировал...

Код: Выделить всё

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Taron
Сообщения: 51
Зарегистрирован: 2016.07.26, 19:14

Re: Убираем /frontend/web/

Сообщение Taron »

viewtopic.php?t=17656
Извиняюсь.
большое спасибо!!!!
Ответить