Я хочу, чтобы этот адрес /admin/personal/index
запустить personal
контроллер и index
действия, поэтому я добавить это правило urlManagerКак игнорировать часть URL в правилах urlManager?
'admin/<controller>/<action>' => '<controller>/<action>'
но мне кажется, что он думает admin
- это контроллер и personal
- это действие. Но я хочу проигнорировать admin
часть url вообще. Как я могу это достичь? (без .htaccess, если возможно)
также попробуйте решение Jorgen, но все же получите ошибку 404. И в журналах эта линия:
Request parsed with URL rule: <module:\w+>/<controller:\w+>/<action:\w+>
основной локальной конфигурации
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => [
'admin/<controller:\w+>/<action:\w+>' => '<controller>/<action>',
],
],
.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Он работает только тогда, когда я писал следующее правило
'<module:\w+>/<controller:\w+>/<action:\w+>' => '<controller>/<action>',
, но в в этом случае префикс «admin», конечно, не добавляет для URL. Но напрямую, он работает нормально.
Я нашел причину: в общих конфигах были другие правила.
Thx, Jorgen, для оказания помощи! Вопрос закрыт.
по-прежнему получают ошибку 404. Но в журнале у меня есть это: «Запрос проанализирован с правилом URL:/<контроллер: \ w +>/". Я уверен, что правило применяется правильно, но Yii все еще анализирует его по умолчанию. –
Skav
Я проверил это без правил, Yii записал: «Нет совпадающих правил URL. Использование логики разбора URL по умолчанию», поэтому над сообщением маршрута не указано значение по умолчанию. – Skav
Вы пытались с 'admin' или просто с' '? Я не уверен, что yii распознает модуль. И вы разместили свое правило поверх массива правил? –