Задать вопрос
@NewOpener

Как правильно формировать чпу в yii2?

Здравствуйте. Начал изучать yii2 и столкнулся с трудностями в плане формирования чпу. Просмотрел множество источников,в том числе офгайд, но так и нашел ответа.
Используемые инструменты: php7, apache 2.4, yii2, composer. Сервер - localhost. Путь к папке с приложением: С:/localhost/yii2project/.

Что я пытался делать:

Настройки apache
DocumentRoot "c:/localhost/yii2project/web"
<Directory "c:/localhost/yii2project/web">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>


.httaccess в корне (c:/localhost/yii2project)
RewriteEngine on
RewriteRule ^(.+)?$ /web/$1


.httaccess в web (c:/localhost/yii2project/web)
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php


Настройки urlManager
'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
		'<action:(about|contact|login|)>' => '/site/<action>',
                '<controller>/<action>' => '<controller>/<action>',
								
            ],
        ],


Много пробовал вариантов, но так не один и не заработал. Прошу помощи.
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@NewOpener Автор вопроса
Вообщем спасибо всем, кто помогал. Решил проблему следующим образом:
1) Настройки Apache (httpd.conf):
DocumentRoot "c:/localhost/yii2project/web"
<Directory "c:/localhost/yii2project/web">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>


В этом же файле раскомментировать строку #LoadModule rewrite_module modules/mod_rewrite.so

2) В данном случае, никаких .htaccess нигде создавать специально не нужно. В папке web файл .htaccess оставить как есть.

3) Находим файл web.php (в моем случае он тут C:\localhost\yii2project\config), открываем, раскомментируем urlManager и внесем в него следующие строки:
'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            '' => '/site/index',
            '<action:(about|contact|login|)>' => '/site/<action>',
            '<controller>/<action>' => '<controller>/<action>',
								
            ],
        ],


В итоге на localhoste заработали чпу для базовых страниц фреймворка (index, about, contact, login), а также для уже мною созданных страниц
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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