Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (13)
  • Как на хостинге запустить cron yii2?

    @vksee
    Судя по скриншоту, в вашем случае этот параметр должен быть:
    /domain/public_html/yii hello/index
    Слева от yii не должно быть пробела, /domain/public_html/yii - это путь к файлу скрипту.
    Убедитесь в наличии каталога /domain/public_html/, в котором есть файл yii.

    В общем случае, запуск этого скрипта из любого места:
    php /domain/public_html/yii hello/index
    Звучит команда примерно так: запустить php, который запустит на исполнение скрипт /domain/public_html/yii с параметрами hello/index.
    Если файл yii отмечен как исполняемый, то можно:
    /domain/public_html/yii hello/index

    И не забывайте, что это не веб приложение, а консольное, со своими нюансами.
    Ответ написан
    Комментировать
  • Как настроить маршрутизацию в зависимости от параметров в UrlManager?

    @vksee
    *** Вариант 1 *** - создать специальное правило для URL.
    <?php
    namespace app\components;
    use yii\web\UrlRuleInterface;
    use yii\base\Object;
    
    class JoomlaUrlRule extends Object implements UrlRuleInterface
    {
        public function createUrl($manager, $route, $params)
        {
            return false;
        }
    
        public function parseRequest($manager, $request)
        {
            $it_joomla_url = $request->getPathInfo()==='' 
                         && $request->getQueryParam('option')==='com_content';
            if (!it_joomla_url) {
                return false;            
            }
            $view = $request->getQueryParam('view');
            if (empty($view)) {
                return false;            
            }
            return ["$view/view", $request->queryParams];
        }
    }

    Прописать его в конфиге приложения:
    [
        'components' => [
            'urlManager' => [
                // ...
                'rules' => [
                    ['class' => 'app\components\JoomlaUrlRule'],
                    // ...
                ],
            ],
        ],
    ]

    Yii2: Разбор и генерация URL

    *** Вариант 2 *** - решить задачу настройками веб-сервера.

    Для веб-сервера Apache - добавьте в файл .htaccess строки:
    RewriteCond %{THE_REQUEST} index.php [NC]
    RewriteCond %{QUERY_STRING} option=com_content [NC]
    RewriteCond %{QUERY_STRING} view=category [NC]
    RewriteRule (.*) /category/view/ [L,R=301,QSA]
    
    RewriteCond %{THE_REQUEST} index.php [NC]
    RewriteCond %{QUERY_STRING} option=com_content [NC]
    RewriteCond %{QUERY_STRING} view=article [NC]
    RewriteRule (.*) /article/view/ [L,R=301,QSA]

    Информация о правилах...
    Это два набора правил редиректа, для ссылок вида:
    index.php?option=com_content&view=category...
    index.php?option=com_content&view=article...

    Для изначального URL запроса - порядок параметров значения не имеет.
    К примеру, должны работать варианты:
    index.php?option=com_content&view=article&id=1
    index.php?id=1&view=article&option=com_content

    По ссылке index.php?option=com_content&view=article&id=1
    будет редирект на /article/view?option=com_content&view=article&id=1

    Все параметры запроса затем передаются в контроллер, обрабатывать можно только нужные параметры, к примеру, только id.

    Но для SEO рекомендую более строгие правила:
    RewriteCond %{THE_REQUEST} index.php [NC]
    RewriteCond %{QUERY_STRING} option=com_content [NC]
    RewriteCond %{QUERY_STRING} view=category [NC]
    RewriteCond %{QUERY_STRING} id=(\d+) [NC]
    RewriteRule (.*) /category/view?id=%1 [L,R=301]
    
    RewriteCond %{THE_REQUEST} index.php [NC]
    RewriteCond %{QUERY_STRING} option=com_content [NC]
    RewriteCond %{QUERY_STRING} view=article [NC]
    RewriteCond %{QUERY_STRING} id=(\d+) [NC]
    RewriteRule (.*) /article/view?id=%1 [L,R=301]

    По ссылке index.php?option=com_content&view=article&id=1 будет редирект на /article/view?id=1
    Ответ написан
    Комментировать
  • Можно ли настроить пагинацию в gridview?

    @vksee
    <?= GridView::widget([
        'pager' => [
            'firstPageLabel' => 'Начало',
            'lastPageLabel' => 'Конец',
        ],
    ]) ?>

    yii\grid\GridView->pager
    yii\widgets\LinkPager
    Ответ написан
    Комментировать
  • Что сделать, чтобы браузеры не блокировали элементы сайта из соображений безопасности?

    @vksee
    Открывайте в браузере инструменты разработчика. Там отображены все запросы.

    Всё же на этом сайте есть http ссылки.

    Инструменты разработчика в деле:

    5d587527ba687073724311.png

    В Хроме есть поиск по всем ресурсам сайта.
    5d5878faaf101780593053.png


    Ответ написан
    1 комментарий