Я новичок в php, новичок в mvc, новичок в yii и новичок в переписывании URL.Итак, извините, если я спрашиваю что-то очень простое.
Я скрыл index.php (из метода htaccess, обсуждавшегося на форумах yii)
В моем urlmanager у меня есть это,
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
'showScriptName'=>false,
У меня есть 3 файла в папке view / site.
- 'путешествие',
- 'пригласить',
- 'linkedin '
Теперь моя домашняя страница должна перенаправить на действие "путешествие" (т. е. открыть "site / trip.php")
Так что, думаю, это будет
'/' => 'site/journey'
Это тоже работает.
Теперь я хочу, чтобы «путешествие / приглашение» вызвало действие «пригласить», то есть должно открыть «сайт / приглашение.php»
И «trip / linkedin» должен вызывать действие «linkedin», то есть «site / linkedin.php».
, но
'journey/invite' => 'site/invite',
'journey/linkedin' => 'site/linkedin'
не работает.
Кроме того, может ли кто-нибудь помочь мне понять это,
<controller:\w+>/<id:\d+>
то есть, что такое контроллер в URL и что означает «w +»?
Ссылка на руководство также поможет.
Отредактировано после предложения bool.dev:
Изменил код, как вы сказали (ранее я тоже пробовал, удаляя все правила по умолчанию).Теперь мой менеджер URL выглядит так:
'/' => 'site/journey',
'journey/invite' => 'site/invite',
'journey/linkedin' => 'site/linkedin',
'<controller:\w+>/<id:\d+>'=>'view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
Но он выдает ошибку
"Предупреждение: require_once (): действует ограничение open_basedir. Файл (/var/xyz.com)/../yii/framework/yii.php) находится вне допустимых путей: (/ usr / share / php: / usr / share / pear: / usr / share / php / libzend-framework-php:/var/*/tmp:/var/xyz.com) в /var/xyz.com/journey.php в строке 12 Предупреждение: require_once (/var/xyz.com /../ yii /framework / yii.php): не удалось открыть поток: операция не разрешена в /var/xyz.com/journey.php в строке 12 Фатальная ошибка: require_once (): сбой при открытии требуется '/var/xyz.com/../yii / framework / yii.php '(include_path ='.: / usr / share / php: / usr / share / php / libzend-framework-php ') в /var/xyz.com/journey.php в строке 12'
, когда я делаю xyz.com/journey/invite
или даже xyz.com/journey
Редактировать:
Это была проблема с разрешением, @ bool.dev'sсработало предложение поставить конкретные правила сверху:)