rest yii2 pretty url urlManager

#yii2 #yii2-advanced-app #yii-rest

#yii2 #yii2-advanced-app #yii-rest

Вопрос:

Мой yii2 rest отлично справляется с этим запросом http://extractor-frontend.dev/property?id=JP000004 я бы хотел поработать с этим http://extractor-frontend.dev/property/JP000004

это мой urlManager в config/web.php

 urlManager' => [
        'enablePrettyUrl' => true,
        'enableStrictParsing' => true,
        'showScriptName' => false,

        'rules' => [
            [
                'class'=>'yiirestUrlRule',
                'pluralize' => false,
                'controller' => 'property',

                'tokens' => [
                    '{id}' => '<id:\w >'
                ],
                'extraPatterns' => ['GET,HEAD property/{id}' => 'index',]

            ]
        ],
    ],
  

это мой .htaccess в web

 RewriteEngine on
Options Indexes
Require all granted
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
  

если поставить ‘enablestrict parsing’ => false,

http://extractor-frontend.dev/site/about работайте нормально … правила перезаписи работают!

Ответ №1:

Я использую приведенный ниже код для своих приложений yii2. Я думаю, что ваш метод конфигурации подходит для yii1. Рекомендуется использовать метод конфигурации yii2.

  'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'myaction/<id>/<param2>' => 'site/myaction',

            [
                'pattern' => '<action>',
                'route' => 'site/<action>',
                'defaults' => ['action' => 'index']
            ],
        ]
    ]