Настройка ЧПУ

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ddmitrenko
Сообщения: 82
Зарегистрирован: 2015.02.04, 16:31

Настройка ЧПУ

Сообщение ddmitrenko »

Здравствуйте. Помогите разобраться с настройкой ЧПУ
1. main.php -

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

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false, ... 
2. .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
3. Ссылка - /user/admin/update?id=1 не работает по причине неверного формата для id, но в отладчике вижу, что управление к модулю приходит.
4. ссылка /user/admin/update/1 тупо выдает ошибку 404.
Чего надо подкрутить?
С уважением, Дмитрий.
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Настройка ЧПУ

Сообщение Dominus »

Посмотрите тут: viewtopic.php?t=19038
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Настройка ЧПУ

Сообщение Dominus »

У меня advanced на одном домене настроен следующим образом

/.htaccess корень проекта

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

Options FollowSymLinks
AddDefaultCharset utf-8

<IfModule mod_rewrite.c>
    RewriteEngine On

    # the main rewrite rule for the frontend application
    RewriteCond %{REQUEST_URI} !^/(backend/web|admin)
    RewriteRule !^frontend/web /frontend/web%{REQUEST_URI} [L]

    # redirect to the page without a trailing slash (uncomment if necessary)
    #RewriteCond %{REQUEST_URI} ^/admin/$
    #RewriteRule ^(admin)/ /$1 [L,R=301]
    # the main rewrite rule for the backend application
    RewriteCond %{REQUEST_URI} ^/admin
    RewriteRule ^admin(.*) /backend/web/$1 [L]

    # if a directory or a file of the frontend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/frontend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /frontend/web/index.php [L]

    # if a directory or a file of the backend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/backend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} \.(htaccess|htpasswd|svn|git)
    RewriteRule \.(htaccess|htpasswd|svn|git) - [F]
</IfModule>
/frontend/web/.htaccess

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

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php
/backend/web/.htaccess

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

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php
/frontend/config/main.php

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


'homeUrl' => '/',
//...
'components' => [
  'request' => [
            'csrfParam' => '_csrf-frontend',           
            'baseUrl' => '',
  ],
   'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                //...
            ],
  ],
  //...
],
//...
/backend/config/main.php

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

'homeUrl' => '/admin',
//...
'components' => [
  'request' => [
            'csrfParam' => '_csrf-backend',           
            'baseUrl' => '/admin',
  ],
  'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '' => 'site/index',
                '<_a:(login|logout)>' => 'users/default/<_a>', // sitename.ru/admin/login
                
                // Мои настройки для модуля User                
                'users' => 'users/default/index',// sitename.ru/admin/users
                'users/create' => 'users/default/create',// sitename.ru/admin/users/create
                'users/<id:\d+>/<_a:[\w\-]+>' => 'users/default/<_a>', // sitename.ru/admin/users/1/update
                
                //...
            ],
  ],
  //...
],
//...
Результат:
sitename.ru - frontend
sitename.ru/admin - backend
Последний раз редактировалось Dominus 2017.08.25, 17:47, всего редактировалось 1 раз.
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
ddmitrenko
Сообщения: 82
Зарегистрирован: 2015.02.04, 16:31

Re: Настройка ЧПУ

Сообщение ddmitrenko »

У меня нашлась ошибка в .htaccess.
RewriteRule ^(.*)$ /index.php?/$1 [L]
заменил на
RewriteRule . index.php. Пока работает на локалке :)
P/S/ А разделение идет на уровне сервера
С уважением, Дмитрий.
serii360
Сообщения: 4
Зарегистрирован: 2017.10.11, 16:46

Re: Настройка ЧПУ

Сообщение serii360 »

У меня тоже самое, только не подключаются скрипты и стили. В чем может быть проблема?
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Настройка ЧПУ

Сообщение Nex-Otaku »

В чём угодно может быть проблема, вы ведь никакой информации не предоставили. Какой веб-сервер (nginx или Apache), какие настройки, какая ошибка в ответ на запрос, что в логе...
Ответить